Ich bin verwirrt, wie es passiert ist. Die Ausgabe ist nicht wie erwartet.Werte in langen Variable gespeichert ist nicht wie erwartet
public class Test2 {
public static void main(String arg[]){
int interval = 43200;
long tempInterval = interval * 60000;
System.out.println(tempInterval);
}}
Erwartete Ausgabe ist 2592000000, aber ich bekomme -1702967296. Es könnte naiv sein Frage, aber ich bin mit diesem fest.
'60000' ist' int' und 'interval' ist' int'. Also ist 'interval * 60000'' int * int', was 'int' ist. Wenn Sie dieses 'int'-Ergebnis in' long'-Variable speichern, wird dessen Wert nicht geändert. Wahrscheinlich benötigen Sie ein '60000L' Literal, das für' long' steht, so dass Sie mit 'int * long = long' (jetzt wo ist das Duplikat) enden. – Pshemo
Und http://stackoverflow.com/questions/17221254/1000-60-60-24-30-results-in-a-negative-number – Tunaki