在计算机编程中,双精度数据类型通常被假定为具有 15 位小数的近似精度。但是,某些数字表示形式(例如 1.0/7.0)在变量内部表示时似乎具有更高的精度。本文将探讨为什么会发生这种情况,以及为什么精度通常被描述为小数点后 15 位左右。
IEEE 双精度数有 53 个有效位,大约等于 15.95 个小数位。为了考虑舍入,实现将精度 (DBL_DIG) 设置为 15。这几乎提供了超出 DBL_DIG 所暗示的精度的额外十进制数字。
显示双精度时,编译器通常根据精度对值进行舍入。例如,1.0/7.0,当显示为“%.17g”时,具有 17 位精度。但是,如果使用“%.64g”,则不会出现超出预期 15 位精度的有效数字。
双精度数字具有允许大约 15.95 位十进制数字的内部表示形式的精度。然而,由于四舍五入的原因,显示精度通常设置为小数点后 15 位。此解释有助于阐明为什么某些精确数字(例如 1.0/7.0)在内部似乎具有更高的精度,但在显示时仍符合估计的 15 位精度。
以上是为什么双精度的小数位数比其宣传的 15 位要多?的详细内容。更多信息请关注PHP中文网其他相关文章!