IEEE754能正确比较浮点数大小的范围是多少

use*_*984 0 java ieee-754

我知道可以正确比较的整数范围是-(2^53 - 1)2^53 - 1

但是浮点数的范围是多少呢?

// Should the double type conform to this specification? I guess
double c = 9007199254740990.9;
double d = 9007199254740990.8;
System.out.println(c > d); // return false
Run Code Online (Sandbox Code Playgroud)

Daw*_*ica 5

没有特定的范围可以保证浮点数的正确比较——这需要存在无限多个double表示形式。

所有double数字的二进制表示形式均精确到 53 位有效数字。如果两个数字仅在第 54 个有效二进制数字上不同,则它们通常具有相同的double表示形式,除非四舍五入使它们不同。

  • @user15163984 它*不能*超过 53 位。只有*53位,所以谈论“*第一个*”53位是没有意义的。你的问题没有意义。 (2认同)