2014-02-13 150 views
0

將這個腳本的Javascript數學效率四捨五入

var a = 1/3; 
var b = 2/5; 
var c = a+b; 

跑得比這個腳本

var a = Math.round(100*(1/3))/100; 
var b = Math.round(100*(2/5))/100; 
var c = a+b; 

或者說更快或更慢,有沒有辦法讓JavaScript來的公式計算結果爲只有在一定的水平的準確性。

var a = Math.onlySolveThisUpTo2DecimalPlaces(1/3); //0.33 

速度差異是否足夠大以關心?

+0

不成熟的優化是所有邪惡的根源... – dandavis

+0

我也有一個關於'Math.round()'效率的問題。如果速度是最重要的,請考慮偏移。看到這裏:http://stackoverflow.com/questions/3233731/javascript-bitshift-alternative-to-math-round – cube

回答

2

將這個腳本[...]比這個腳本

運行速度更快或更慢。第二,還有很多事情要做。

或者說,有沒有一種方法可以讓JavaScript來評估一個方程只有一定的準確度。

是速度差,甚至大到足以關心?

如果你想顯示具有一定精度的結果,你可以使用a.toFixed(2)(保留兩位小數)或a.toPrecision(2)(二顯著位數)。但是四捨五入(甚至不是整數)不會對性能產生積極影響。