5

我们知道机器 epsilon ε 是“1 与在给定浮点类型中可表示的大于 1 的最小值之间的差”。1

但是,该定义没有说明下一个较小的值。1 和下一个较小的值有什么区别?


笔记

1 ISO/IEC C 2011 标准,第 5.2.4.2.2 节,第 13 段(对浮点数不具有权威性,但机器 epsilon 的常见描述的一个示例)。

4

1 回答 1

7

不。

1-ε/2 是小于 1 的最大数。1+ε 是大于 1 的最小数。

归一化浮点数的有效数字始终在 [1,2) 范围内。因此,要表示 [0.5,1) 范围内的数字,指数为 -1,LSB 为原来的一半。

所以在二进制中,1 + ε 类似于:

1 + ε = 1.000...0001 ⨯ 2 0

您可以看到 1 和 1 + ε 之间没有数字,这与 ε 的定义相匹配。

但是 1 - ε 类似于:

1 - ε = 1.111...1110 ⨯ 2 -1

所以在 1 - ε 和 1 之间只有一个数,即 1 - ε/2。

于 2013-09-20T05:34:31.090 回答