没有下溢和溢出,是否有任何2个数字,其中A <B为十进制形式,但A> B转换为浮点数后?

oco*_*mfd 4 floating-point ieee-754 floating-point-conversion

例如,0.000000000000000000000000000000000000000000000000000000000000000000000000000000000011大于0.00000000000000000000000000000000000000000000000000000000000000000000000000000000001小数和转换为浮点数后:

document.writeln(0.00000000000000000000000000000000000000000000000000000000000000000000000000000011>0.0000000000000000000000000000000000000000000000000000000000000000000000000000001);
Run Code Online (Sandbox Code Playgroud)

并且1.9999999999999999999小于2的小数,但在转换为浮点数后它们变得相等:

document.writeln(1.9999999999999999999==2);
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有任何2个数字,A和B,它是A <B的十进制形式,但在转换为浮点数后变为A> B?

Eri*_*hil 5

通常的舍入规则是弱单调的,所以没有.

由IEEE 754定义的舍入规则将结果舍入到最接近的可表示值,而不管它在哪个方向或在所选方向上的最接近的可表示值(例如朝向零).两个数字的舍入不可能相互交叉(当使用相同的规则进行舍入时),因为这意味着一个数字不会舍入到最接近的可表示值.