0
我很困惑它是如何發生的。產出不如預期。存儲在long變量中的值不像預期的那樣
public class Test2 {
public static void main(String arg[]){
int interval = 43200;
long tempInterval = interval * 60000;
System.out.println(tempInterval);
}}
預期的輸出是2592000000,但我得到-1702967296。這可能是天真的 問題,但我堅持這一點。
'60000'是'int','interval'是'int'。所以'interval * 60000'是'int * int',它是'int'。將'int'結果存儲在'long'變量中不會改變它的值。你可能需要'60000L'字面值來表示'long'類型,所以你最終會得到'int * long = long'(現在是重複的地方)。 – Pshemo
和http://stackoverflow.com/questions/17221254/1000-60-60-24-30-results-in-a-negative-number – Tunaki