【问题标题】:Round output in javascript [duplicate]javascript中的圆形输出[重复]
【发布时间】:2014-02-15 05:55:34
【问题描述】:

我正在开发一个计算器,希望它四舍五入到小数点后 5 位。这是我的 javascript 代码,用于获取输入输出并产生输出:

        <div class="input"> 
        Price paid per share: <input id="value1" type="text" /><br>
        Number of shares bought: <input id="value2" type="text" /><br>
        Commission/ fee's paid: <input id="value3" type="text" /><br>
        <center><input type="submit" class="submit"  onclick="output();"></center>  
    </div>
    <center><p class="result" id="result"> </p></center>

    <script type="text/javascript" language="javascript" charset="utf-8">
   function output(){
       var value1 = document.getElementById('value1').value;
       var value2 = document.getElementById('value2').value;
       var value3 = document.getElementById('value3').value; 
       document.getElementById('result').innerHTML = ((parseFloat(value1) * parseFloat(value2)) + (parseFloat(value3))) / (parseFloat(value2));
    }

有人知道如何将我的输出/结果四舍五入到小数点后 5 位吗?谢谢。

【问题讨论】:

  • parseFloat() 可能没有理由,也可能有充分的理由不这样做。注意"4" * "3" == 12

标签: javascript


【解决方案1】:
var num=4.5960797;
var n=num.toFixed(5);

【讨论】:

    【解决方案2】:

    尝试使用toFixed:

    var result = ((parseFloat(value1) * parseFloat(value2)) + (parseFloat(value3))) / (parseFloat(value2));
    document.getElementById('result').innerHTML = result.toFixed(5);
    

    【讨论】:

      【解决方案3】:

      使用Math.round(num * 100000) / 100000

      【讨论】:

      • 这会将结果保留为数字,而不是字符串,浮点表示稍后可能会导致字符串表示不正确。此外,像1 这样的值将显示为1 而不是1.00000。
      【解决方案4】:
      var result=Math.round(yourValue*100000)/100000
      

      【讨论】:

      • 这会将结果保留为数字,而不是字符串,浮点表示稍后可能会导致字符串表示不正确。此外,像1 这样的值将显示为1 而不是1.00000。
      猜你喜欢
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      相关资源
      最近更新 更多