2014-02-22 56 views
2

我有下面的代碼行:爲什麼這個Java部門打印出零?

System.out.println(5/9); 

我希望看到0.555的結果,而是它打印出零。有人能幫我理解爲什麼會發生這種情況嗎我目前正在學習編程並感謝幫助。

謝謝!

回答

7

這是因爲你在不知不覺中做什麼是整數部門。 爲了快速計算,計算機在沒有涉及到十進制數時使用整數除法,因此十進制值丟失。

嘗試了這一點:

System.out.println(5.0/9.0); 

​​

System.out.println(5/9.0); 

System.out.println((float) 5/9); 

System.out.println(5/(float) 9); 
3

Integer除以Integer回報Integer

做這樣

System.out.println(5.0/9); 
2

這是一個整數除法,因爲兩個操作數是整數類型。整數除法給出通過截斷獲得的整數結果。

2

當Integer除法運行在Java(Integer/Integer)中時,計算該數字,然後向下舍入爲while數字。因此,5/9評估爲0.55555,然後舍入爲0.

5

您試圖用5除以9.這兩個都是整數。所以答案也是一個整數。所以返回0作爲答案。請嘗試像System.out.println(5.0/9);或賦值給浮點變量,並與該