什么是在Go语言中获取机器epsilon的最简单方法?其他浮点数方面,如精度、最小指数、最大指数、摇晃等方面呢?
我知道有一个math/const包可以获取不同浮点类型的最大值和最小值(http://golang.org/src/pkg/math/const.go),但没有其他信息。
我想知道的原因之一是为了验证我是否已经达到了机器可以完成的给定计算的最高精度,以便我不会过早退出或尝试比需要更长时间。
另一个原因只是出于好奇。
谢谢
编辑:
为了好玩,我查阅了一些学校笔记,以了解手动计算epsilon的方法,这里是从c++翻译而来的草稿 http://play.golang.org/p/XOXwIdNfsa,希望你喜欢
编辑: 以下是下方的评论(感谢提供更符合习惯用法的方法来查找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
Playground - Nick Craig-Wood Mar 5 at 8:07
意思是:在编程中,可以使用这个方法来计算最小的可表示数值。