考慮這一段代碼:爪哇長被錯誤地計算
// calculate age of dog
long interval = 1000*60*60*24*30;
int ageInWeeks = Weeks.weeksBetween(geburtsDatumDateTime, nowDateTime).getWeeks();
if (ageInWeeks < 20){
// wöchentlich
interval = 1000*60*60*24*7;
} else if (ageInWeeks >= 20 && ageInWeeks < 52){
// 2-wöchentlich
interval = 1000*60*60*24*14;
} else if (ageInWeeks >= 52){
// monatlich
interval = 1000*60*60*24*30;
}
調試器顯示的是,在ageInWeeks> = 52的時間間隔的情況下是:-1702967296,但它應該是:25.92億
減號表示某種溢出錯誤。 然而Java中long的最大值是2E63-1,它是:9.2233E18
我在這裏錯過了什麼?是一個較長的較小的Android最大值?
您可以用'Long.MAX_VALUE' –