2016-01-10 31 views
0

我發現這個公式對SO,但我不明白它是如何工作:四捨五入到幾十Java的公式沒有意義

(n + 5)/10 * 10 

這個數字舍入到十的多,但是當我計算它只是分裂並重新回到n + 5。這實際上是如何工作的?

例(在Java中):

(24 + 5)/10 * 10 = 20 

雖然它實際上應該是29,據我所知。

+1

執行順序從左到右。 29/10在整數除法中給出了什麼? –

+1

如果您使用雙倍結果將會是29。 – user3284549

回答

2

你在int上做這些操作。這就是爲什麼,每個操作結果也是一個int。什麼情況是:

(24 + 5) = 29

29/10 = 2(因爲分數部分被整數老是掉線)

2 * 10 = 20

這四捨五入方法僅適用於floatdouble工作正常。您可以嘗試將int投射到double

+0

啊我明白了..愚蠢的錯誤,謝謝。 –

+0

不客氣;) –