首页 > 解决方案 > 如何避免小数点后的数字过多?

问题描述

以下代码生成数字并将其除以 1000:但有时会生成像 1.2295999999999998 这样的数字,而 1229.6 仅被 1000 除?

我需要在代码中进行哪些更改,以免发生这种情况?

Z1 = document.getElementById("Z1").innerHTML = Math.floor((Math.random() * 99899 + 100)) / Math.pow(10, Math.floor((Math.random() * 3 + 1)));

document.getElementById("L").innerHTML = Z1 / 1000;
<label id="Z1"></label><br>
<label id="L"></label>

标签: javascriptmath

解决方案


document.getElementById("L").innerHTML = (Z1 / 1000).toFixed(2); 
// if you want 2 digits after decimalpoint

进一步说明:

浮点数不能以二进制精确表示所有小数。它与十进制值如何转换为二进制浮点数有关。例如,1/10 在二进制中变成了重复的十进制,所以这个数字不能完美地表示,重复的操作会暴露错误。


推荐阅读