Java parseInt vs parseLong
String a = "576055795";
long b = 10*Integer.parseInt(a);
long c = 10*Long.parseLong(a);
System.out.println(b); //Prints 1465590654
System.out.println(c); //Prints 5760557950
Warum sind Sie unterschiedlich?
- Wissen Sie, wie
Integer
undLong
unterschiedlich sind? - Ich bin mir bewusst, die reichen, ja
- Sind Sie sich bewusst, dass 5760557950 ist außerhalb der Reichweite?
- Ach so, Sie Fragen sich, warum
int * int
nicht führenlong
? - Mein schlechtes. Sorry. Erhalten Sie es jetzt. 🙂 Danke für die anschauliche Erklärung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Integer.parseInt()
gibt einint
, das ist eine signierte 32-bit-Ganzzahl.10
ist auch einint
; Multiplikation576055795
durch10
als int-overflows und ergibt eineint
, die dann gefördert werden, um einelong
.Long.parseLong()
gibt einelong
, die einen signierten 64-bit-Ganzzahl. Multiplikation mit10
ergibt sich eine lange ohne überlauf.