下面这两个例子都有8个有效数字,但第一个案例没有给出任何警告,而第二个案例确实如此,为什么?
float f1 = 11111111;
float f2 = 99999999;
Run Code Online (Sandbox Code Playgroud)
浮点数据类型是否有7或8个有效数字?
看看这篇文章:IEEE754 32位浮点数有一个24位尾数(提示省略前导1).现在2 24是16'777'216.这意味着你的第一个号码11'111'111非常合适,但第二个号码却不合适.
不幸的是二进制与十进制不一样,所以在讨论精度时,大部分时间我们都在讨论二进制数字,浮点数有24个重要数字.(有一个"二进制数字"的缩写让我逃脱.)转换是log 2 10,大约是3.32,所以你得到"7.22十进制数字".