我有一個簡單的java程序,它不會以我認爲應該的方式運行。用java語言劃分錯誤
public class Divisor
{
public static void main(String[] args)
{
int answer = 5/2;
System.out.println(answer);
}
}
爲什麼不打印出2.5?
我有一個簡單的java程序,它不會以我認爲應該的方式運行。用java語言劃分錯誤
public class Divisor
{
public static void main(String[] args)
{
int answer = 5/2;
System.out.println(answer);
}
}
爲什麼不打印出2.5?
5/2是整數除法(你甚至將它存儲在一個整數變量),如果你希望它是2.5,你需要使用浮點除法:
double answer = 5.0/2.0;
整數除法總是將等於正常的數學除法舍入到最接近的整數。
Java的整數除法說:整數除以整數結果整數。 2.5
不能用整數表示,所以結果被置爲2.0
。而且,您將結果存儲爲整數。
如果您需要浮點除法,則可以將其中一個操作數加倍並將answer
類型更改爲double
。您在此使用文字值,因此將5
更改爲5.
會使此文字值爲double
。
到底應該以下爲你工作:
double answer = 5./2;
注意,你甚至不需要一個點符號後一個零的符號!
不需要每個操作數加倍,只是其中一個很好('5.0/2 = 5/2.0 = 2.5') – BackSlash
@BackSlash那麼?你正在談論的仍然是編譯*完全相同的東西*。唯一的區別是你讓編譯器將一個整數轉換爲一個浮點數,以便它可以進行適當的浮點除法。爲了它,你只是懶惰。 – Thor84no