Wie man Long to Int in Java konvertiert

Hassan Saeed 12 Oktober 2023
  1. Verwenden Sie Type Casting, um ein long in ein int in Java zu konvertieren
  2. Verwenden Sie Math.toIntExac(), um ein long in ein int in Java zu konvertieren
Wie man Long to Int in Java konvertiert

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.

Verwandter Artikel - Java Int