如何在Javascript中添加美元金额

如何在Javascript中添加美元金额,javascript,math,currency,Javascript,Math,Currency,我只想把1.5和1.47这样的数字加起来,等于1.97 这是如何实现的?我不知道我不知道怎么做!:) var折扣额=0; var ogCookie= 对于(var i=0;i

我只想把1.5和1.47这样的数字加起来,等于1.97

这是如何实现的?我不知道我不知道怎么做!:)

var折扣额=0;
var ogCookie=<%=strJsonCookie%>
对于(var i=0;i
使用
parseFloat
而不是
parseInt

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

使用parseFloat,而不是parseInt。parseInt会将所有内容转换为整数


另外,为什么要使用我假设的php多次向javascript输出相同的值?输出一次并将其存储在变量中!这还允许您将javascript放在一个单独的文件中,并通过CDN缓存/交付它。

1.47+1.5,其中两个数字都是实数,但不等于1.97。也许这就是你的问题


否则,你的问题是什么?上面的代码有什么问题?jsFiddle可以演示一下吗?

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

正如其他人提到的,您应该使用
parsefloat
而不是
parseInt
。但是,由于精度问题,在显示计算结果时,可能还需要使用
.toFixed(2)
。使用您的示例,
1.5+1.47
可能导致
2.969999999998
-使用
。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));
var折扣额=0;
var ogCookie=<%=strJsonCookie%>
对于(var i=0;i
还要注意,我还通过删除对
parseFloat
的不必要调用并使用加法赋值运算符(
+=
)对代码进行了轻微优化

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));