|
1
15
如果有疑问,请阅读规范。C++标准称
这有点含糊;幸运的是,有一个脚注:
这些是在C标准中定义的;让我们在上面查找:
所以
正如您所说,浮点有大约7位十进制精度,但是固定宽度小数和浮点的表示错误不是一致对数。舍入1.xxx形式的数字时的相对误差。以固定的小数位数表示 大十倍 比舍入9.xxx的相对误差大。到相同的小数位数。类似地,根据一个值落在二进制代码中的位置,将其四舍五入到24个二进制数字的相对误差可以变化近两倍。
结果是,不是所有的七位小数都能在来回浮动的过程中存活下来,但所有的六位小数都能存活下来。因此,
对于
|
|
|
2
2
尾数中只有23位(有一个隐含的1,所以它实际上是24位,但是1显然没有变化)。这就给出了6.923689900271567位精度小数,而不是7位。 |
|
|
Leo · 为什么carg(-0)返回-pi? 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
|
|
Alexander · 为什么数字的输出不同? 1 年前 |
|
Ronny · 如何防止程序返回“inf”? 2 年前 |
|
|
EMS · 为什么双重打印的值与C中的浮点值相同,而它们的大小不同? 2 年前 |
|
|
Dakolas · 对python十进制库感到困惑 2 年前 |
|
|
RTC222 · 无法获取vrndscalepd的正确舍入模式代码 2 年前 |