如何在Javascript中添加美元金额

How do I add to dollar amounts in Javascript

本文关键字:添加 美元 金额 Javascript      更新时间:2023-09-26

我只是想把数字(如果你愿意的话,货币)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可以演示吗?