4
public class Main {
public static void main(String[] args) {
long product = 1L;
product = (9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9);
System.out.println(product);
product = 9L;
for (int i = 0; i != 12; i++) {
product *= 9;
}
System.out.println(product);
}
}
輸出:-754810903
2541865828329 //這是正確的產品是Java在這兩個方法不同
'(9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9)'被評估爲一個int並因此溢出。嘗試用'(9L * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9 * 9)' –
這與'double result = 9/10' 0.鑄造到變量類型是發生的最後一件事 –
@Pince如果其中一個答案幫助了你,你可以[接受它](http://stackoverflow.com/help/someone-answers)。 – assylias