javascript - 如何使用 Math.round 获取舍入的 JavaScript 数字
问题描述
这是我遇到问题的表达方式:
Math.round((Math.ceil((0.4 - 0.1 / 1000) / 0.1) - 1)) * 0.1
在 Chrome 和 Firefox 中,它返回 0.30000000000000004。这个数字需要放回一个<input type="number">
元素。虽然 Firefox 足够聪明,可以编写“0.3”,但 Chrome 向用户展示了 JavaScript 无法正确计算数学的全部美感。不用说,从用户的角度来看,这是不可接受的。
只有我找不到让它正常工作的方法。我知道 JavaScript 不擅长计算,但必须有一个解决方案。我几乎不在乎它有多复杂,但用户需要看到“0.3”,而不是步长为 0.1 时的 16 位小数。
我希望 - 我经常使用它 - forMath.round(x / scale) * scale
返回一个正确四舍五入为 lg(scale) 数字的数字。但这现在已经开始失败了。
需要什么魔法密码才能打败这个邪恶的咒语?
PS: 0.1的步长是一个例子。它可以是用户想要的任何东西。比如 1、10、12、0.25 或 0.5。
解决方案
这个数字需要放回一个
<input type="number">
元素
一种解决方案是
.toFixed(1)
推荐阅读
- arrays - 在 printf() 中使用 %s 后出现自动换行符的问题
- python - 如何从更大的列表中获取值并且列表的其余元素也大于定义的值?
- javascript - 当我单击链接导航到页面的不同部分时,导航栏覆盖内容
- python - Django - 根据现有查询的结果查询值
- javascript - bigchaindb-driver - TypeError:无法读取未定义的属性“1”
- php - Laravel postgres Distinct ON 查询生成器
- java - 为什么我要使用 servlet 下载没有扩展名的文件?
- java - 调度程序 Java 输入插件 Logstash
- android - Android jetPack 导航 UI - 在当前目的地中找不到当前片段
- python - Tensorflow tf.dataset.shuffle 非常慢