2013-09-21 31 views
-4

我有一個簡單的java程序,它不會以我認爲應該的方式運行。用java語言劃分錯誤

public class Divisor 
{ 
    public static void main(String[] args) 
    { 
     int answer = 5/2; 
     System.out.println(answer); 
    } 
} 

爲什麼不打印出2.5?

回答

3

5/2是整數除法(你甚至將它存儲在一個整數變量),如果你希望它是2.5,你需要使用浮點除法:

double answer = 5.0/2.0; 

整數除法總是將等於正常的數學除法舍入到最接近的整數。

+0

不需要每個操作數加倍,只是其中一個很好('5.0/2 = 5/2.0 = 2.5') – BackSlash

+0

@BackSlash那麼?你正在談論的仍然是編譯*完全相同的東西*。唯一的區別是你讓編譯器將一個整數轉換爲一個浮點數,以便它可以進行適當的浮點除法。爲了它,你只是懶惰。 – Thor84no

2

Java的整數除法說:整數除以整數結果整數2.5不能用整數表示,所以結果被置爲2.0。而且,您將結果存儲爲整數。

如果您需要浮點除法,則可以將其中一個操作數加倍並將answer類型更改爲double。您在此使用文字值,因此將5更改爲5.會使此文字值爲double

到底應該以下爲你工作:

double answer = 5./2; 

注意,你甚至不需要一個點符號後一個零的符號!