Ont*_*omo 3 javascript math currency
我只想添加数字(货币,如果你愿意),像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);
Run Code Online (Sandbox Code Playgroud)
小智 8
使用parseFloat而不是parseInt:
parseFloat("1.19") + parseFloat("2.82") == 4.01
Run Code Online (Sandbox Code Playgroud)
正如其他人所提到的,你应该使用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));
Run Code Online (Sandbox Code Playgroud)
另请注意,我还通过删除不必要的调用和使用添加赋值运算符()来略微优化代码.parseFloat+=