浮点范围内还是范围外?

use*_*214 3 c++

下面这两个例子都有8个有效数字,但第一个案例没有给出任何警告,而第二个案例确实如此,为什么?

float f1 = 11111111;
float f2 = 99999999;
Run Code Online (Sandbox Code Playgroud)

浮点数据类型是否有7或8个有效数字?

Ker*_* SB 9

看看这篇文章:IEEE754 32位浮点数有一个24位尾数(提示省略前导1).现在2 24是16'777'216.这意味着你的第一个号码11'111'111非常合适,但第二个号码却不合适.

不幸的是二进制与十进制不一样,所以在讨论精度时,大部分时间我们都在讨论二进制数字,浮点数有24个重要数字.(有一个"二进制数字"的缩写让我逃脱.)转换是log 2 10,大约是3.32,所以你得到"7.22十进制数字".

  • 你正在寻找'位'的简写吗? (4认同)
  • @ 0x5f3759df:那就是那个,谢谢!user9:睡过头,它实际上非常明智,设计非常巧妙.例如,IEEE浮点数的值按照与它们的位图相同的顺序排序,这是很好的; + 0由全零位模式表示. (2认同)