机器epsilon,ε:从1开始下一个较小值的步骤是什么?

Sea*_*ean 5 floating-point numerical

我们知道机器epsilon,ε是"在给定浮点类型中可表示的1和最小值之间的差值".1

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


注意

1 ISO/IEC C 2011标准,第5.2.4.2.2节,第13段(对浮点没有权威性,但是机器epsilon的常见描述的一个例子).

Die*_*Epp 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.

  • 这假定为二进制浮点格式. (2认同)