javascript - 如何在小数点后 2 位停止 Javascript 数学输出并清除旧输出?
问题描述
我正在使用 JavaScript 进行乘法运算。给定的输入乘以 0.05。
JavaScript 将给定的输入数字乘以 0.05,但在以下方面失败。
- 计算值应停止在小数点后 2 位。示例:3284.40 而不是 3284.40000000000003
- 此外,当计算新值时,旧输出应自动清除。
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
解决方案
对于小数点试试这个
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;
我会让你做一些调整,玩得开心!:)
推荐阅读
- mysql - Mysql - 修改大表上的列数据类型
- python - 如何在列的所有值中只允许点后的 4 个值?
- javascript - 将下拉菜单从 Material UI 转换为 Bootstrap
- django - 在heroku上运行应用程序时没有名为“app.settings”的模块错误
- javascript - 用 Jquery 替换 d3.select 和 onchange 函数
- c++ - 如何用 Qt 和 C++ 解析这个 JSON?
- laravel - 使用 '1' 而不是 user_id 作为 belongsTo 的第二个参数
- string - Bash 在不扩展转义空格的情况下执行字符串作为命令
- python - 如何编写掷骰子游戏项目。这是我的第一个项目
- android - 在 Android Studio 中使用 OkHttp 在同一会话中的 POST 请求后发出 GET 请求