首页 > 解决方案 > 在 Javascript 中将数字 0.005 向下舍入

问题描述

有没有办法将数字 0.005 向下舍入。

例如:

5.425是要四舍五入到5.42

2.336是要四舍五入到2.34

0.5556是要四舍五入到0.56

更新:在点之后我并不总是有 3 位数字,我可以拥有更多。像5.555556, 12.3456789, 等等

已经尝试过,parseFloat(number).toFixed(2)但在某些情况下它并没有真正起作用,像0.555输出这样的值将0.56代替0.55

提前致谢

标签: javascript

解决方案


问题是,JavaScript 不知道5.425. 计算机的浮点实现以及大多数编程语言的浮点实现都是基于二进制的,而不是基于十进制的(参见 IEEE 754)。因此,每个扫描的数字首先四舍五入到最接近的可能值:

5.425  .toPrecision(18); // result "5.42499999999999982"  => ToFixed(2)="5.42"
2.336  .toPrecision(18); // result "2.33599999999999985"  => ToFixed(2)="2.34"
0.5556 .toPrecision(18); // result "0.555599999999999983" => ToFixed(2)="0.56"

并将这些扫描结果用于进一步处理。所以使用的结果toFixed(2)是预期的并且绝对正确。

并且不要相信其他解决方案(有时称为betterToFixed())来解决此问题。他们对其他数字有疑问,因为许多作者不了解幕后的数学。


推荐阅读