【问题标题】:Subtraction in JavaScript only returns two digits of the thousandsJavaScript 中的减法只返回千位的两位数
【发布时间】:2011-12-13 16:50:26
【问题描述】:

我有两个变量保存整数值:

x = 36,000;
y = 18,045.40;

这就是我的减法:

z = parseInt(x) - parseInt(y);

结果是 15。

如果我删除 parseInt,结果是“Nan”。

如何在不四舍五入或删除数千的情况下用 y 减去 x?

非常感谢。

【问题讨论】:

  • 不要在值中使用逗号,另请参阅此演示:Fiddle for this 在其中您有一个想法,即使它是正值或负值,也要减去两个浮点值...

标签: javascript subtraction


【解决方案1】:

不要在数字中使用逗号。

【讨论】:

    【解决方案2】:

    您发布的代码甚至不会运行。我建议将,s 从您的号码中提取出来,并改用parseFloat。这似乎给出了你想要的结果。演示在这里:

    http://jsfiddle.net/yVWA9/

    代码:

    var x = 36000;
    var y = 18045.40;
    
    alert(parseFloat(x) - parseFloat(y));
    

    【讨论】:

      【解决方案3】:

      Javascript 中没有千位分隔符。您的变量要么包含字符串而不是整数值,要么出现语法错误。

      如果您有字符串并且它们无法更改(例如从服务接收等),请尝试以下操作:

      x = "36,000";
      y = "18,045.40";
      
      // remove commas and convert to numbers
      function norm(num) { return +num.replace(',', ''); }
      
      console.log(norm(x) - norm(y));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-13
        • 1970-01-01
        • 1970-01-01
        • 2019-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多