簡體   English   中英

如何在Javascript中添加美元金額

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM