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