我試圖通過變量來劃分屏幕寬度,以便在webview中繪製等距的UI部分。在JavaScript中浮點數的劃分
但是,當變量爲3時,JavaScript中的100/3結果爲33.3333333333333336,並且由於商的總和大於100%,第三部分無法按預期繪製。
這個問題有沒有很好的解決方法?
我試圖通過變量來劃分屏幕寬度,以便在webview中繪製等距的UI部分。在JavaScript中浮點數的劃分
但是,當變量爲3時,JavaScript中的100/3結果爲33.3333333333333336,並且由於商的總和大於100%,第三部分無法按預期繪製。
這個問題有沒有很好的解決方法?
您可以指定分區的精度:
var width = (100/3).toPrecision(3);
你能做的最好的是獲得儘可能接近:
(100/3).toFixed(2)
爲三個切片中的兩個切片獲取寬度。以像素爲單位從目標寬度中減去它們實際寬度的總和,得到第三個切片的寬度。它可能比其他切片寬或窄一個或兩個像素,但對於任何合理的屏幕分辨率都不可見。
100 *(1/3)將返回33.33333333333333。
注:
1/3 * 100返回33.33333333333333
但
100 * 1/3返回33.333333333333336
因此,使用括號是安全的。
可能重複的[JavaScript的浮點數學破碎?](http://stackoverflow.com/questions/588004/is-javascripts-floating-point-math-broken) – delnan