2014-09-02 45 views
0

我敢肯定,這不奇怪,而我不明白的文檔,但爲什麼:Java的龍怪的結果

long myLong = 3600*24*365*70; 
System.out.println(String.valueOf(myLong)); 

顯示-2087447296時顯然不是3600 * 24 * 365結果* 70?

+1

這可能幫助 http://stackoverflow.com/questions/6332392/multiplication-operation-in-java-is-resulting-in-negative-value – hece 2014-09-02 06:10:59

+1

整數溢出發生的事情。讓他們中的任何一個變長。這樣可以避免停止發生整數乘法。 – 2014-09-02 06:11:17

回答

4

嘗試

long myLong = 3600L*24*365*70; 

爲你的代碼是乘以爲INT,然後轉換成一個長。作爲int的值溢出int的最大值,但長時間可以爲OK。