Wie kann ich in Java einen long in int umwandeln?
Antworten
Zu viele Anzeigen?Sie können die Long
Wrapper anstelle von long
primitiv und rufen
Long.intValue()
[Java7 intValue()-Dokumente](http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#intValue())
Es rundet/abschneidet die long
Wert entsprechend, um in eine int
.
Die kürzeste, sicherste und einfachste Lösung ist:
long myValue=...;
int asInt = Long.valueOf(myValue).intValue();
Bitte beachten Sie, dass das Verhalten von Long.valueOf
ist als solches:
Verwenden Sie diesen Code:
System.out.println("Long max: " + Long.MAX_VALUE);
System.out.println("Int max: " + Integer.MAX_VALUE);
long maxIntValue = Integer.MAX_VALUE;
System.out.println("Long maxIntValue to int: " + Long.valueOf(maxIntValue).intValue());
long maxIntValuePlusOne = Integer.MAX_VALUE + 1;
System.out.println("Long maxIntValuePlusOne to int: " + Long.valueOf(maxIntValuePlusOne).intValue());
System.out.println("Long max to int: " + Long.valueOf(Long.MAX_VALUE).intValue());
Ergebnisse in:
Long max: 9223372036854775807
Int max: 2147483647
Long max to int: -1
Long maxIntValue to int: 2147483647
Long maxIntValuePlusOne to int: -2147483648
In Java ist ein Long eine vorzeichenbehaftete 64-Bit-Zahl, d. h. Sie können Zahlen zwischen -9.223.372.036.854.775.808 und 9.223.372.036.854.775.807 (einschließlich) speichern.
Ein int hingegen ist eine vorzeichenbehaftete 32-Bit-Zahl, d. h. Sie können Zahlen zwischen -2.147.483.648 und 2.147.483.647 (einschließlich) speichern.
Wenn also Ihr long außerhalb der für einen int zulässigen Werte liegt, erhalten Sie keine wertvolle Umwandlung.
Einzelheiten zu den Größen der primitiven Java-Typen finden Sie hier:
http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html