JavaScript中浮点数的划分

时间:2013-07-27 21:53:19

标签: javascript floating-point division floating-accuracy

我正在尝试将屏幕宽度除以变量,以便在webview中绘制等间距的UI部分。

然而,当变量为3时,JavaScript中的结果为33/333333333333333,而第三部分无法按预期绘制,因为商的总和大于100%,我说。

这个问题有什么好的解决方法吗?

5 个答案:

答案 0 :(得分:10)

您可以指定分部的精确度:

var width = (100 / 3).toPrecision(3);

答案 1 :(得分:5)

你能做的最好就是尽可能接近:

(100 / 3).toFixed(2)

答案 2 :(得分:1)

你可以做到

Math.floor(100/3);

总是将小数点四舍五入到较小的最接近的整数,所以在你的情况下它将它舍入到33。

答案 3 :(得分:0)

为三个切片中的两个切片尽可能接近宽度。从目标宽度(以像素为单位)减去其实际宽度(以像素为单位)的总和,以获得第三个切片的宽度。它可能比其他切片更宽或更窄一个或两个像素,但对于任何合理的屏幕分辨率都不会显示。

答案 4 :(得分:0)

100 *(1/3)将返回33.33333333333333。

注意:

1/3 * 100返回33.33333333333333

100 * 1/3返回33.333333333333336

所以使用括号是安全的。