首页 > 解决方案 > 如何在小数点后 2 位停止 Javascript 数学输出并清除旧输出?

问题描述

我正在使用 JavaScript 进行乘法运算。给定的输入乘以 0.05。

JavaScript 将给定的输入数字乘以 0.05,但在以下方面失败。

  1. 计算值应停止在小数点后 2 位。示例:3284.40 而不是 3284.40000000000003
  2. 此外,当计算新值时,旧输出应自动清除。

decimal

<script>
    function doMath() {
    var numOne = document.getElementById('num1').value;
    var numTwo = document.getElementById('num2').value;
    var theProduct = 0.05 * parseInt(numTwo);
    var p = document.getElementById('theProduct');
    p.innerHTML += theProduct;
    document.getElmentById('doMath').innerHTML='';
    }
</script>
    <input id="num1"  type="hidden" name="num1"  value="0.05" readonly><br> Value:<br>
    <input id="num2" type="text" name="num2">
    <br><input type="button" value="Convert" onclick="doMath()" />
    </div><div id="theProduct">$</div>

如果给定的值为 5688,那么我希望输出为 3284.40,但实际输出为 3284.40000000000003

当我单击“转换”两次时,我希望输出为 3284.40,但实际输出为 284.40000000000003284.40000000000003

标签: javascript

解决方案


对于小数点试试这个

const myround = ( num, dec = 2 ) => Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);

现在清理内容然后

document.getElementById( 'theProduct' ).innerHtml = '$';

然后设置新内容

document.getElementById( 'theProduct' ).innerHtml = '$' + parseFloat( result );

结果是您从之前的计算中得到的结果

如果您需要将其与之前的结果进行总结,那么

var el = document.getElementById( 'theProduct' );
el.innerHtml = '$' + parseFloat( el.innerHtml ) + result;

我会让你做一些调整,玩得开心!:)


推荐阅读