如何在Javascript中添加美元金额

时间:2011-04-07 14:21:42

标签: 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);

5 个答案:

答案 0 :(得分:8)

使用parseFloat代替parseInt

 parseFloat("1.19") + parseFloat("2.82") == 4.01

答案 1 :(得分:6)

正如其他人所提到的,您应该使用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的不必要调用并使用添加赋值运算符(+=)来优化代码稍微

答案 2 :(得分:1)

使用'parsefloat()'来提取数字。

答案 3 :(得分:0)

使用parseFloat,而不是parseInt。 parseInt会将所有内容都变成整数。

另外,为什么你使用我假设的php将相同的值输出到javascript几次?输出一次并将其存储在变量中!这也可以让你将javascript放在一个单独的文件中,并通过CDN缓存它/提供它。

答案 4 :(得分:-1)

1.47 + 1.5这两个数字都是实数不等于1.97。也许那是你的问题?

否则,你的问题是什么?您使用上述代码有什么问题? jsFiddle可以演示吗?