【问题标题】:Strange javascript issue when adding 9 digit values添加 9 位数值时出现奇怪的 javascript 问题
【发布时间】:2015-10-07 06:50:59
【问题描述】:

我有以下代码:

    window.total = 0;
    $('.amount').each(function(){       
        if($(this).val()){
        window.total += parseFloat( $.trim($(this).val()).replace(',',''));
        }               
    });
    console.log(window.total);

对于这个例子,.amount 类只有一个输入(可以有很多),当用户输入一个 7 位和 2 位小数的数字时,上面的代码将数字缩减为 4 位。

任何少于 7 位的数字都可以正常工作。任何想法为什么会发生这种情况?

Js 小提琴:Demo

【问题讨论】:

  • 试试这个:$.trim($(this).val()).replace(/,/g, '')
  • 工作得很好 -> jsfiddle.net/wsvkfhzx ?
  • 我添加了一个小提琴,我能够重新创建错误。 @adeneo,我正在使用一个名为 maskMoney 的库,创建十进制值,所以这可能就是导致错误的原因。
  • 那是因为您使用的库添加了多个逗号。第二条评论中的解决方案应该有效
  • 谢谢大家,@SheraliTurdiyev 你的代码解决了它。非常感谢。

标签: javascript add


【解决方案1】:

在这种情况下,您应该使用"xxx,xxx,xxx.xx".replace(/,/g, '');。它将工作Demo

另外,你可以看到这个答案:https://stackoverflow.com/a/6052630/4365315

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2012-05-12
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多