javascript的parseFloat()方法精度問(wèn)題探討
更新時(shí)間:2013年11月26日 17:31:41 作者:
javascript中的parseFloat()方法,大家應(yīng)該不陌生吧,下面為大家介紹下其精度問(wèn)題,感興趣的朋友不要錯(cuò)過(guò)
在Javascript中parseFloat()方法會(huì)產(chǎn)生精度問(wèn)題
<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相加本來(lái)為1.3921,但sum1得出的結(jié)果為:1.3921000000000001,這不是想要的結(jié)果,特別在計(jì)算金錢的時(shí)候,不需要如此精確的精度??梢允褂胻oFixed(n)方法修正后(n是小數(shù)后精確的位數(shù))。
例如:parseFloat(1.392143).toFixed(2)=1.39。
復(fù)制代碼 代碼如下:
<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相加本來(lái)為1.3921,但sum1得出的結(jié)果為:1.3921000000000001,這不是想要的結(jié)果,特別在計(jì)算金錢的時(shí)候,不需要如此精確的精度??梢允褂胻oFixed(n)方法修正后(n是小數(shù)后精確的位數(shù))。
例如:parseFloat(1.392143).toFixed(2)=1.39。
相關(guān)文章
javascript適配器模式和組合模式原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了javascript適配器模式和組合模式原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了javascript適配器模式與組合模式相關(guān)原理、功能、實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2023-07-07JavaScript實(shí)現(xiàn)省市縣三級(jí)級(jí)聯(lián)特效
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)省市縣三級(jí)級(jí)聯(lián)特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05