[英]How do I add to dollar amounts in Javascript
我只想添加數字(貨幣,如果你願意),像1.5和1.47一樣,並使它等於1.97。
這是如何完成的? 我不知道我不知道怎么做! :)
var discountAmount = 0;
var ogCookie = < %= strJsonCookie % >
for (var i = 0; i < ogCookie.products.length; i++) {
discountAmount = parseFloat(discountAmount) + parseFloat(ogCookie.products[i].discount_amount);
}
alert(discountAmount);
使用parseFloat
而不是parseInt
:
parseFloat("1.19") + parseFloat("2.82") == 4.01
正如其他人所提到的,你應該使用parseFloat
而不是parseInt
。 但是,由於精度問題,當您顯示計算結果時,您可能還需要使用.toFixed(2)
。 使用您的示例, 1.5 + 1.47
可能會導致2.9699999999999998
- 使用.toFixed(2)
會將此不精確度更正為2.97
。
var discountAmount = 0;
var ogCookie = < %= strJsonCookie % >
for (var i = 0; i < ogCookie.products.length; i++) {
discountAmount += parseFloat(ogCookie.products[i].discount_amount);
}
// Output at 2 decimal places
alert(discountAmount.toFixed(2));
另請注意,我還通過刪除對parseFloat
的不必要調用並使用添加賦值運算符( +=
)來略微優化代碼。
使用'parsefloat()'來提取數字。
使用parseFloat,而不是parseInt。 parseInt會將所有內容都變成整數。
另外,為什么你使用我認為是php的幾次輸出相同的值到javascript? 輸出一次並將其存儲在變量中! 這也可以讓你將javascript放在一個單獨的文件中並通過CDN緩存它/傳遞它。
1.47 + 1.5這兩個數字都是實數不等於1.97。 也許那是你的問題?
否則,你的問題是什么? 您使用上述代碼有什么問題? 一個jsFiddle可以證明嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.