1
15
如果有疑问,请阅读规范。C++标准称
这有点含糊;幸运的是,有一个脚注:
这些是在C标准中定义的;让我们在上面查找:
所以
正如您所说,浮点有大约7位十进制精度,但是固定宽度小数和浮点的表示错误不是一致对数。舍入1.xxx形式的数字时的相对误差。以固定的小数位数表示 大十倍 比舍入9.xxx的相对误差大。到相同的小数位数。类似地,根据一个值落在二进制代码中的位置,将其四舍五入到24个二进制数字的相对误差可以变化近两倍。
结果是,不是所有的七位小数都能在来回浮动的过程中存活下来,但所有的六位小数都能存活下来。因此,
对于
|
2
2
尾数中只有23位(有一个隐含的1,所以它实际上是24位,但是1显然没有变化)。这就给出了6.923689900271567位精度小数,而不是7位。 |
Rik Bloemers · for循环不接受任何浮点变量 2 年前 |
zell · 为什么存储7个浮点数需要34字节? 2 年前 |
Atharva Sunil Sathe · 如何删除任意数的小数点? 2 年前 |
user1658887 · 为什么**2!=a*a一些彩车? 6 年前 |