最简单的方法来获取机器epsilon go(golang)

sbd*_*o85 6 floating-point go

在Go(golang)中获取机器epsilon的最简单方法是什么?那么浮点数的其他方面如精度,最小指数,最大指数,摆动等等呢?

我意识到有不同浮点类型的最大值和最小值的math/const包(http://golang.org/src/pkg/math/const.go),但没有其他信息.

我想知道的一个原因是验证我已达到机器可以执行的给定计算的最大精度,以便我不会提前退出或尝试更长时间.

另一个只是好奇心.

谢谢

编辑:

为了好玩,我在学校的一些笔记中查找了如何手动为这些操作计算epsilon,这里是c ++的粗略翻译http://play.golang.org/p/XOXwIdNfsa享受

编辑:从下面评论(感谢更加惯用的寻找epsilon的方式):

使用epsilon := math.Nextafter(1, 2) - 1 游乐场 - 尼克克雷格伍德 3月5日8:07

Lin*_*ope 10

它没有定义,我发现问题在问题跟踪器上解决为"按预期工作":

https://code.google.com/p/go/issues/detail?id=966

math.Nextafter如果需要,建议似乎是用来获取值.

具体来说,公式是math.Nextafter(1.0,2.0)-1.0(第二个参数可以是大于1.0的任何数字).

  • 使用`epsilon:= math.Nextafter(1,2) - 1` [Playground](http://play.golang.org/p/EkigXdFDQE) (4认同)