我有這樣的功能:我可以加快我的特殊輪功能嗎?
int round(double val) {
if (val >= 0) {
return (int)Math.Floor(val + 0.5);
}
return (int)Math.Ceiling(val - 0.5);
}
我把它在我的計劃中有許多次,我的意思是很多次,所以它的每一個milisecond的運行時間的問題。有沒有比現在更快的方法? THX
編輯:
的功能是用於在圖像中計算的線的切線方向的算法的一部分。它來自學術文章。由於它以弧度值處理角度,因此它使用小而精確的數字。
I/O的例子:
0 -> 0
1 -> 1
1.1 -> 1
1.51 -> 2
-0.1 -> 0
-1 -> -1
-1.1 -> -1
-1.51 -> -2
EDIT2:
根據意見,我改變檢查功能,這一個:
int round(double val) {
return (int)Math.Round(val, MidpointRounding.AwayFromZero);
}
更新的問題是:數學.Round功能是最快的舍入方式?
你剛纔不是執行'Math.Round'用'MidpointRounding.AwayFromZero'? –
根據你的輸出,這是'Math.Round'與'MidpointRounding.AwayFromZero' –
當我深入研究它時,似乎我做了...... :-)但是,你能否提出做這樣的最快方法四捨五入? – Jarda