在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。