Wie man Long to Int in Java konvertiert
-
Verwenden Sie Type Casting, um ein
long
in einint
in Java zu konvertieren -
Verwenden Sie
Math.toIntExac()
, um einlong
in einint
in Java zu konvertieren
Dieses Tutorial behandelt Methoden, um ein long
in ein int
in Java zu konvertieren.
Verwenden Sie Type Casting, um ein long
in ein int
in Java zu konvertieren
Der einfachste Weg, ein long
in ein int
in Java zu konvertieren, ist, das long
mit (int) longVar
in das int
zu casten. Das folgende Beispiel veranschaulicht dies:
public class MyClass {
public static void main(String args[]) {
long myLong = 10000l;
int myInt = (int) myLong;
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000
Value after conversion to int: 10000
Verwenden Sie Math.toIntExac()
, um ein long
in ein int
in Java zu konvertieren
In Java 8 und höher können wir die eingebaute Math
Klassenmethode - Math.toIntExac()
verwenden, um in Java ein long
in ein int
zu konvertieren. Das folgende Beispiel veranschaulicht dies:
public class MyClass {
public static void main(String args[]) {
long myLong = 10000l;
int myInt = Math.toIntExact(myLong);
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000
Value after conversion to int: 10000
Dies sind die beiden gebräuchlichen Methoden zur Konvertierung eines Long
in ein int
in Java. Wir müssen jedoch sicherstellen, dass der Long
-Wert, den wir haben, vollständig im int
gespeichert werden kann, da beide unterschiedliche Speichergrenzen haben, 32 Bit gegenüber 64 Bit.
Beide Methoden verhalten sich unterschiedlich, wenn wir versuchen, einen long
Wert, der größer als 32 Bit ist, in einen int
zu konvertieren.
Das folgende Beispiel veranschaulicht, wie sich das Typecasting in diesem Fall verhält.
public class MyClass {
public static void main(String args[]) {
long myLong = 10000000000l;
int myInt = (int) myLong;
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
Value of long: 10000000000
Value after conversion to int: 1410065408
Beachten Sie, dass der resultierende konvertierte Wert falsch ist, da wir diesen “langen” Wert nicht in eine int
-Variable einpassen können.
Das folgende Beispiel veranschaulicht, wie sich Math.toIntExac()
in diesem Fall verhält.
public class MyClass {
public static void main(String args[]) {
long myLong = 10000000000l;
int myInt = Math.toIntExact(myLong);
System.out.println("Value of long: " + myLong);
System.out.println("Value after conversion to int: " + myInt);
}
}
Ausgabe:
> Exception in thread "main" java.lang.ArithmeticException: integer overflow
at java.base/java.lang.Math.toIntExact(Math.java:1071)
at MyClass.main(MyClass.java:4)
Beachten Sie, dass diese Methode einen Integer Overflow
-Fehler liefert, anstatt fälschlicherweise zu versuchen, den Long
Wert in eine int
Variable einzupassen.