javascript - 如何避免小数点后的数字过多?
问题描述
以下代码生成数字并将其除以 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>
解决方案
document.getElementById("L").innerHTML = (Z1 / 1000).toFixed(2);
// if you want 2 digits after decimalpoint
进一步说明:
浮点数不能以二进制精确表示所有小数。它与十进制值如何转换为二进制浮点数有关。例如,1/10 在二进制中变成了重复的十进制,所以这个数字不能完美地表示,重复的操作会暴露错误。
推荐阅读
- reactjs - 在 gatsby-transformer-remark 的 graphql 查询中使用 OR 条件
- node.js - 如何在 Electron 中实现 Google Text to Speech?
- excel - 使用 Selenium 和 VBA 从最终结果页面中提取数据
- reactjs - 使用 react-navigation 在 graphql-data 树中导航
- python - 如何获得 **only** 作为 Twint (Twitter) 输出的推文数量?
- android - 如何从图像的特定块中提取文本?[机器学习套件]
- c# - 如何仅使用循环来划分两个用户输入并且不允许使用任何操作?
- asp.net - ASP.NET Core - 使用绑定的 ViewModel 在视图内填充表单
- android - CI/CD BitRise React Native Android 构建失败
- wcf - 2 个应用程序和一个使用 WCF 的 Windows 服务。谁是服务器,谁是客户端?