如何使用Math.round

时间:2019-02-17 19:30:22

标签: javascript math

这是我遇到的麻烦表情:

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.1时,用户需要看到“ 0.3”,而不是带有16位小数的数字。

我希望-并且我经常使用它-使Math.round(x / scale) * scale返回一个正确舍入为lg(小数位)位数的数字。但这现在开始失败了。

要打败这个邪恶的咒语,需要什么魔术代码?

PS:例如,步长为0.1。可以是用户想要的任何东西。例如1、10、12、0.25或0.5。

1 个答案:

答案 0 :(得分:1)

  

此数字需要放回<input type="number">中   元素

一种解决方案是

.toFixed(1)