1
1
IEEE 754 64位二进制浮点始终使用64位存储数字。它可以精确地表示
二进制的
分数。仅查看正常数字,如果
所有32位二进制整数(包括2)都是可精确表示的。 大于2的最小可精确表示数字为2.0000000000000004440892098500616169452667236328125。它是二进制分数1.0000000000000000000000000000000000000001的两倍。 2.0000000000000003比2更接近2.0000000000000004440892098500616169452667236328125,因此它四舍五入并打印为2.0000000000000004。 2.0000000000000002更接近于2.0,因此四舍五入为2.0。 要存储介于2.0和2.00000000000000044408920988500626169452667236328125之间的数字,需要不同的浮点格式,每个数字可能需要64位以上。 |
2
0
浮点数不存储为整数,每一位表示1,2,4,8,16,32…的是/否项,。。。值,将其相加以获得完整的数字。它们存储为
在任何特定的时间 a specific bit-length 它们被“放入”。它们不能溢出。 然而,它们的精度很低,如果你试图将数字拟合到它们中,那么需要更高的精度,你就会得到舍入误差——这就是你在例子中看到的。 有关浮动和存储的更多信息(附示例):
有关浮动精度的更多信息: - Floating Point Arithmetic: Issues and Limitations |
Jake Metz · 当浮点中有尾随的0时,如何显示2位小数 6 年前 |
Adrian Rotama · 将十进制四舍五入到最接近的十次方的轨道 6 年前 |
NicoH · 将浮点转换为整数时的四舍五入 6 年前 |
Musterknabe · 从浮点转换为int时的舍入错误 6 年前 |
dimas · oracle sql中的自定义舍入逻辑 6 年前 |
Peter · 设置tensorflow取整模式 6 年前 |
Karly · 某些基本浮点单位的整数到偶数(或不均匀)倍数 6 年前 |
Adam · 在Matlab中比较分数和小数近似值[重复] 6 年前 |