JavaScript中浮点数的除法

Division of float numbers in JavaScript

本文关键字:除法 浮点数 JavaScript      更新时间:2023-09-26

我试图用一个变量除以屏幕宽度,以便在webview中绘制等距的UI部分。

然而,当变量为3时,在JavaScript中,100/3会产生33.3333333333336,第三部分无法按预期绘制,因为商的总和大于100%,I gusss。

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

您可以指定除法的精度:

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

你能做的最好的事情就是尽可能靠近:

(100 / 3).toFixed(2)

为三个切片中的两个切片获取尽可能接近的宽度。从以像素为单位的目标宽度中减去它们的实际宽度之和,得到第三个切片的宽度。它可能比其他切片宽或窄一到两个像素,但对于任何合理的屏幕分辨率来说,这都是不可见的。

您可以进行

Math.floor(100/3);

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

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

注:

1/3*100返回33.33333333333333

但是

100*1/3返回33.333333333333336

所以使用括号是为了安全。