Double中的机器和Double的最小值



关于浮点数的机器epsilon,我有一个天真的问题。

我们知道,双精度浮点数的机器epsilon在10^{-16}左右,而浮点数的最小严格正值可以小到10^{-300}。既然机器是相对误差的上界,那么使用比机器小得多的10^{-300}这个数字有什么意义呢?

我一定是误解了浮点表示。你能澄清一下吗?

所以,关键是你的epsilon是,正如你所说的,相对错误。

所以,所有的数,无论大小,都是(粗略地说)number +/- (number * epsilon)。

实际上,这适用于(普通的或花园的)规范化数——它不适用于非规范化数…这就是为什么这些需要小心处理的原因……

最新更新