我發現這個公式對SO,但我不明白它是如何工作:四捨五入到幾十Java的公式沒有意義
(n + 5)/10 * 10
這個數字舍入到十的多,但是當我計算它只是分裂並重新回到n + 5。這實際上是如何工作的?
例(在Java中):
(24 + 5)/10 * 10 = 20
雖然它實際上應該是29,據我所知。
我發現這個公式對SO,但我不明白它是如何工作:四捨五入到幾十Java的公式沒有意義
(n + 5)/10 * 10
這個數字舍入到十的多,但是當我計算它只是分裂並重新回到n + 5。這實際上是如何工作的?
例(在Java中):
(24 + 5)/10 * 10 = 20
雖然它實際上應該是29,據我所知。
你在int
上做這些操作。這就是爲什麼,每個操作結果也是一個int
。什麼情況是:
(24 + 5) = 29
29/10 = 2
(因爲分數部分被整數老是掉線)
2 * 10 = 20
這四捨五入方法僅適用於float
和double
工作正常。您可以嘗試將int
投射到double
。
啊我明白了..愚蠢的錯誤,謝謝。 –
不客氣;) –
執行順序從左到右。 29/10在整數除法中給出了什麼? –
如果您使用雙倍結果將會是29。 – user3284549