ZELIBOBA Asked:2020-06-26 19:40:03 +0800 CST2020-06-26 19:40:03 +0800 CST 2020-06-26 19:40:03 +0800 CST 为什么 6.35.toFixed(1) == 6.3? 772 写 在内部二进制表示中,6.35 是无限二进制分数。它存储时会失去准确性... 但是我不明白为什么 1.35.toFixed(1) == 1.4 只有6.35的这种垃圾?例如,为什么 1.35 不是无限二进制分数??? javascript 1 个回答 Voted Best Answer Kromster 2020-06-26T19:48:26+08:002020-06-26T19:48:26+08:00 因为,以二进制表示形式编写,6.35它将被“四舍五入”到最接近的 IEEE-754 格式的可表示数字(在本例中为 32 位) - 01000000110010110011001100110011,当转换回来时,将分别给出我们6.349999904632568359375和1.35,00111111101011001100110011001101和1.35000002384185791015625 toFixed(1)做简单的四舍五入, 6.349to6.3和1.35to1.4 PS这里有一个在线数字表示查看器:https ://www.h-schmidt.net/FloatConverter/IEEE754.html
因为,以二进制表示形式编写,
6.35
它将被“四舍五入”到最接近的 IEEE-754 格式的可表示数字(在本例中为 32 位) -01000000110010110011001100110011
,当转换回来时,将分别给出我们6.349999904632568359375
和1.35
,00111111101011001100110011001101
和1.35000002384185791015625
toFixed(1)
做简单的四舍五入,6.349
to6.3
和1.35
to1.4
PS这里有一个在线数字表示查看器:https ://www.h-schmidt.net/FloatConverter/IEEE754.html