Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中浮点数的划分_Javascript_Floating Point_Division_Floating Accuracy - Fatal编程技术网

JavaScript中浮点数的划分

JavaScript中浮点数的划分,javascript,floating-point,division,floating-accuracy,Javascript,Floating Point,Division,Floating Accuracy,我试图用一个变量除以屏幕宽度,以便在webview中绘制等距的UI部分 但是,当变量为3100/3时,JavaScript中的结果为33.3336,并且第三部分无法按预期绘制,因为商的总和大于100%,因此I guss 这个问题有什么好的解决方法吗?你可以这样做 Math.floor(100/3); 它总是将小数点四舍五入到较小的最接近整数,因此在您的例子中,它将四舍五入到33 您可以指定分割的精度: var width = (100 / 3).toPrecision(3); 您所能做的最好

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

但是,当变量为3100/3时,JavaScript中的结果为33.3336,并且第三部分无法按预期绘制,因为商的总和大于100%,因此I guss

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

你可以这样做

Math.floor(100/3);

它总是将小数点四舍五入到较小的最接近整数,因此在您的例子中,它将四舍五入到33

您可以指定分割的精度:

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

您所能做的最好是尽可能靠近:

(100 / 3).toFixed(2)

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

100*(1/3)将返回33.33333

注:

1/3*100返回33.33333

但是

100*1/3返回33.3336


因此,为了安全起见,请使用括号。

那么屏幕不动产中会有1%的损失:100*(1/27)返回3.7037037037033,1/27*100返回3.7037037037033,100*1/27返回3.7037037037037。所以这不是括号的问题。