JavaScript浮点数相加精度丢失问题及toFixed解决方案
作者:木棉时间:2026-10-27 14:59:43浏览:154
在JavaScript中,两个浮点数直接相加(如4.2+9.2)常出现精度丢失,结果显示为13.399999999999998而非预期的13.4。这是由于IEEE 754标准导致的二进制表示误差。通过Number((a+b).toFixed(2))可将结果保留指定位小数,从而获得精确的数值输出。
JavaScript浮点数相加精度问题
例如执行 Number(4.2)+Number(9.2) 的计算。
此时通过 alert 弹出的结果为 13.399999999999998,这是为什么?
再例如执行 Number(2.2)+Number(9.7)。
alert 弹出的结果同样为 11.899999999999998。
然而像 Number(2.3)+Number(9.9) 这样的计算。
alert 弹出的结果是 12.2,这正是我们期望得到的精确值。
为什么部分数值相加会产生大量多余的小数位,而另一些则没有?
具体代码如下:
<html>
<head></head>
<body>
<script>
var a=4.2;
var b=9.2;
alert(Number((a+b).toFixed(2)));
</script>
</body>
</html>作者最新文章
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
相关标签:
