我正在尝试将屏幕宽度除以一个变量,以便在 webview 中绘制等距的 UI 部分。
但是,当变量为 3 时,JavaScript 中的 100 / 3 结果为 33.3333333333333336,而第三部分无法按预期绘制,因为商的总和大于 100%,我猜。
这个问题有什么好的解决方法吗?
我正在尝试将屏幕宽度除以一个变量,以便在 webview 中绘制等距的 UI 部分。
但是,当变量为 3 时,JavaScript 中的 100 / 3 结果为 33.3333333333333336,而第三部分无法按预期绘制,因为商的总和大于 100%,我猜。
这个问题有什么好的解决方法吗?
您可以指定除法的精度:
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
所以使用括号是安全的。