2012-05-04 73 views
5

如何在Java中舍入到特定倍數? 在Excel中存在mround功能,其允許容易的舍入到一個指定的多個像這樣:將數字舍入到特定倍數

mRound(variable,multiple) 

所以mRound(x,3)將返回9如果x = 7.96如果x = 7.2

到目前爲止,我發現的所有舍入函數總是四捨五入到最接近的整數或指定的小數位數,但我希望能夠更改每個變量的倍數。有沒有人知道哪種功能最適合這種情況?

+0

沒有單一功能。 'MUL *輪(X/MUL)'。 –

回答

14

除以數字,舍入,並乘以數字。

double mRound(double value, double factor) { 
    return Math.round(value/factor) * factor; 
} 
+0

是的......雖然我懷疑'因素'和返回值應該是'int's。 –

+0

@ X-Zero:使'factor'成爲'double'可以使用像'0.001'這樣的值來舍入到最接近的千位。 – Ryan

+0

耶!那很簡單!你很棒! –