一千萬個為什麽

搜索

Java是否自相矛盾?

我應該將Java中的 Math.round(1/2)聲明為int還是double?如果兩者都很好,哪個更正確?

另外,為什麽Eclipse告訴我Math.round(1/2)= 0.0,而Math.round(0.5)= 1.0?

任何幫助,將不勝感激!

最佳答案

編譯器首先計算表達式1/2。這兩個數字都是整數,所以它做整數數學。在整數中,1除以2是0.然後,它將0轉換為double,以便將其傳遞給Math.round()。

如果你想要一個正確的答案,你需要傳遞雙打:你可以通過使用1.0/2.0而不是1/2來做到這一點。

轉載註明原文: Java是否自相矛盾?