JavaScript parseFloat精度问题与toFixed修正方案

作者:木棉

时间:2026-10-27

浏览:600

JavaScript中parseFloat()处理字符串转浮点数时,多次累加易产生精度丢失,如0.11+0.2801+1.002结果非预期。本文通过代码示例展示该现象,并推荐使用toFixed(n)方法对结果进行指定位数截断,以修正精度误差,特别适用于金钱等对精度有特定要求的场景。

文章目录

JavaScript parseFloat精度问题与toFixed修正方案

在JavaScript开发中,使用parseFloat()方法解析字符串时,可能会遇到浮点数精度丢失的问题。


具体代码实现如下:

 
<script language="javascript">
var a = "0.11";
var b = "0.2801";
var c = "1.002";
var sum1 = parseFloat(a) + parseFloat(b) + parseFloat(c);
var sum2 = (parseFloat(a) + parseFloat(b) + parseFloat(c)).toFixed(4)
document.write("a+b+c=" + sum1);
document.write("<br/>")
document.write("a+b+c=" + sum2)
</script>

变量a、b、c相加的理论结果应为1.3921,但通过sum1计算得出的实际结果为1.3921000000000001。这种精度偏差在涉及金钱计算等场景下往往是不必要的,因为通常不需要如此高的精度。此时,可以利用toFixed(n)方法对结果进行修正,其中n代表小数点后保留的位数。



例如:parseFloat(1.392143).toFixed(2)=1.39。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章