2016-10-03 61 views
5

如何將一個數字四捨五入到最近的十個數字而沒有if語句?例如,98至100.我如何繞到最近的十個?

int num = 87; 
double t; 
double d = 1.0 * num; // d = 87.0 
t = d/100; 
System.out.println(t); 

回答

6

您可以使用Math.round(num/10.0) * 10

+0

所建議如果通過10D或10.0分,NUM可以是任何(原始)號碼。 –

+0

確實,已編輯。 @Peter – Zarwan

7
answer = ((num+5)/10)*10; // if num is int 

其中numint,並有更多的想法,請閱讀本quesiton。 How to round a number to n decimal places in Java
編輯:
如果numdouble添加類型轉換到表達(long)((num+5)/10)由@PeterLawrey

+0

你確定嗎?如果'num'是14.0,那麼這將評估爲20. – Bathsheba

+0

我可能會有一個高級時刻,但最後一次檢查時,(14.0 + 5)/ 10是1.9,在舍入時變爲2.0。請記住'Math.round'實現德國舍入。 – Bathsheba

+0

將int轉換爲int是多餘的,如果它已經很長,則更糟。 –