添加 9 位值时出现奇怪的 javascript 问题
Strange javascript issue when adding 9 digit values
我有以下代码:
window.total = 0;
$('.amount').each(function(){
if($(this).val()){
window.total += parseFloat( $.trim($(this).val()).replace(',',''));
}
});
console.log(window.total);
对于这个例子,只有一个输入class.amount(可以有很多),当用户输入一个7位数字和2个小数点的数字时,上面的代码将数字截断低至 4 位数。
任何少于 7 位的数字都可以正常工作。知道为什么会这样吗?
Js Fiddle : Demo
在这种情况下,您应该使用"xxx,xxx,xxx.xx".replace(/,/g, '');
。它会起作用 Demo。
另外,你可以看到这个答案:
我有以下代码:
window.total = 0;
$('.amount').each(function(){
if($(this).val()){
window.total += parseFloat( $.trim($(this).val()).replace(',',''));
}
});
console.log(window.total);
对于这个例子,只有一个输入class.amount(可以有很多),当用户输入一个7位数字和2个小数点的数字时,上面的代码将数字截断低至 4 位数。
任何少于 7 位的数字都可以正常工作。知道为什么会这样吗?
Js Fiddle : Demo
在这种情况下,您应该使用"xxx,xxx,xxx.xx".replace(/,/g, '');
。它会起作用 Demo。
另外,你可以看到这个答案: