【问题标题】:Convert string to with two decimals and then add both将字符串转换为带两位小数,然后将两者相加
【发布时间】:2019-03-28 19:34:43
【问题描述】:

我有两个字符串变量,我将它们转换为浮点数。但是当我想将两者相加并得到结果时,它们都会被连接起来。

这就是我的做法:

    <!DOCTYPE html>
    <html>
    <body>
    <p id="demo"></p>
    
    <script>
    var CantVendida='2.00';
    var CantidadBonificacion='1.00';
    var CantidadVenBon=parseFloat(CantVendida).toFixed(2)+parseFloat(CantidadBonificacion).toFixed(2);
    document.getElementById("demo").innerHTML = CantidadVenBon;
    </script>
    
    </body>
    </html>

【问题讨论】:

  • toFixed 将其转换回字符串

标签: javascript


【解决方案1】:

在结果而不是操作数上使用.toFixed(2)

如果您在操作数上使用.toFixed(2),您实际上是在+ 操作发生之前将它们转换为字符串。这就是为什么你在你的版本中得到字符串连接而不是数学加法。

见下文。

    <!DOCTYPE html>
    <html>
    <body>
    <p id="demo"></p>
    
    <script>
    var CantVendida='2.00';
    var CantidadBonificacion='1.00';
    var CantidadVenBon=parseFloat(CantVendida)+parseFloat(CantidadBonificacion);
    document.getElementById("demo").innerHTML = CantidadVenBon.toFixed(2);
    </script>
    
    </body>
    </html>

【讨论】:

    【解决方案2】:

    这个问题是关于类型转换

    This page 展示了如何转换数据类型。

    在您的问题中,我们需要使用Number() 内置函数将String 转换为Number

    let stringNumberOne = "2.3"; // typeof(stringNumberOne) => "string"
    let stringNumberTwo = "3.3"; // typeof(stringNumberTwo) => "string"
    let stringAddition = stringNumberOne + stringNumberTwo; // Result: "2.33.3"
    
    let convertedStringNumberOne = Number(stringNumberOne); // typeof(convertedStringNumberOne) => "number"
    let convertedStringNumberTwo = Number(stringNumberTwo); // typeof(convertedStringNumberTwo) => "number"
    let convertedStringAddition = convertedStringNumberOne + convertedStringNumberTwo; // Result: 5.6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多