Floating point 双机ε在Double和Double中的最小值

Floating point 双机ε在Double和Double中的最小值,floating-point,precision,ieee-754,epsilon,Floating Point,Precision,Ieee 754,Epsilon,我有一个关于浮点数的机器ε的天真问题 我们知道,双浮点数的机器ε约为10^-16,而浮点数的最小严格正值可以小到10^{-300}。既然机器ε是相对误差的上界,那么使用这个比机器ε小得多的数字10^{-300}有什么意义呢 我一定是误解了浮点表示法。你能澄清一下吗 所以,关键的一点是,正如你所说,你的ε是相对误差 所以,所有的数字,不管大小,都是(粗略地说)数字+/-(数字*ε) 事实上,这适用于(普通或花园)标准化的数字——非标准化的数字不是这样的。。。这就是为什么这些需要小心处理。。。但是它

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

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


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

所以,关键的一点是,正如你所说,你的ε是相对误差

所以,所有的数字,不管大小,都是(粗略地说)数字+/-(数字*ε)


事实上,这适用于(普通或花园)标准化的数字——非标准化的数字不是这样的。。。这就是为什么这些需要小心处理。。。但是它们很有异国情调。

尽管这是一个关于R的问题,你介意看看这个答案吗?我写了答案,但对R编程语言一无所知。几乎是复制品。这都是通用的IEEE-754 FP标准,并不是一个语言特定的问题。只有极端数量的语言名称更改。可能重复“是”。为了给询问者一个具体的例子,双精度数字可以(仅仅)看出
6.78E-300
6.780000000000018e-300
之间的区别。您可以看到这两个数字之间的相对差值大约为10^{-16}。但是,double无法看到
6.78E-300
6.7800000000000018E-300
之间的差异(18之前再加一个零)。