js中進行金額計算


js中進行金額計算parseFloat

 

在js中進行以元為單位進行金額計算時 使用parseFloat會產生精度問題
var price = 10.99;
var quantity = 7;
var needPay = parseFloat(price * quantity);

needPay的正確結果應該是76.93元  但是運行后發現needPay為76.93000000000001 
此情況可通過 toFixed(n)  方法修正 但是這個方法對 js版本要求較高 不能兼容ie5

另一個解決方案是: 將元為單位的金額乘以100換算為分進行計算

var price = 10.99
var quantity = 7
var needPay = Math.floor(parseFloat(price*100 * quantity))/100;

parseFloat(price*100 * quantity)的計算結果是7693.000000000001   使用Math.round()方法四舍五入,再除100  即為正確的結果

Math.ceil() 是向上取整
Math.floor()是向下取整
Math.round()是四舍五入

 
 
 

<script language="javascript"> 

function checkForm(){
var Sum="0.11";
var Sum2 = "0.2801"; 
var Sum3="1.002";
var amount = parseFloat(Sum+Sum2 );

相加本來為1.3921,但sum1得出的結果為:1.3921000000000001,顯然不正確,通過toFixed(n)方法修正后(n是精確的小數點位數),得到正確結果。

var amount = parseFloat(Sum+Sum2 ).toFixed(4);//四舍五入保留小數點后四位

if(Sum3<amount){
alert("amount不能大於Sum3");
return false;
}
return true;
}

</script> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM