所以在標題: 中被問到在從一個long值中減去double值時內部發生了什麼?是double或long類型的結果,甚至是在Java規範中指定的行爲還是jvm特有的行爲?Java是什麼類型的(long a - double b)
所以我知道我可以測試自己的jvm我做什麼:
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
double b = 1000;
long a = 1000;
Object c = a - b;
Class cls = c.getClass();
System.out.println("The type of the object is: " + cls.getName());
}
}
輸出:
The type of the object is: java.lang.Double
但是這是指定的地方?或者是特定於我使用的jvm?
問題:還有什麼結果呢? –
那麼結果可能會很長... – noamik
我猜想,因爲double更具體(當考慮浮點時)比long更長時,該long將在操作之前轉換爲double,因此,結果爲double,edit :通過將double轉換爲long,您將失去所有浮點值,這種轉換將毫無意義 – Smajl