在Go中获得机器epsilon的最简单方法是什么?浮点数的其他方面(例如精度,最小指数,最大指数,摆动等)又如何呢?
我意识到,有一个math / const包,其中包含用于不同浮点类型(http://golang.org/src/pkg/math/const.go)的max和min ,但是没有其他信息。
我想知道的一个原因是,对于机器可以执行的给定计算,验证我是否已达到最高精度,这样我就不会早退或尝试更长的时间。
另一个只是出于好奇。
谢谢
编辑:
为了好玩我在学校如何手动计算小量的乐趣一些笔记抬头一看,这里是C ++的一个粗略的翻译http://play.golang.org/p/XOXwIdNfsa享受
编辑:从下面的评论(感谢找到epsilon的更惯用的方式):
使用epsilon := math.Nextafter(1, 2) - 1
游乐场– Nick Craig-Wood 3月5日在8:07
它没有定义,我发现问题已在问题跟踪器上解决为“按预期工作”:
https://code.google.com/p/go/issues/detail?id=966
建议似乎是在需要时math.Nextafter
用于导出值。
具体来说,公式为math.Nextafter(1.0,2.0)-1.0
(第二个参数可以是大于1.0的任何数字)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句