Der Überlauf einer mathematischen Operation führt zu einem positiven oder negativen Unendlich.
Beispiel
Multiplikation zweier wirklich großer Werte:
System.out.println( 1E300 * 1E20 ); // Infinity
System.out.println( –1E300 * 1E20 ); // -Infinity
Für die Werte deklariert die Java-Bibliothek in Double und Float zwei Konstanten; zusammen mit der größten und kleinsten darstellbaren Fließkommazahl sind das:
Wert für |
Float |
Double |
positiv unendlich |
Float.POSITIVE_INFINITY |
Double.POSITIVE_INFINITY |
negativ unendlich |
Float.NEGATIVE_INFINITY |
Double.NEGATIVE_INFINITY |
kleinster Wert |
Float.MIN_VALUE |
Double.MIN_VALUE |
größter Wert |
Float.MAX_VALUE |
Double.MAX_VALUE |
Tabelle 1.8: Spezialwerte und ihre Konstanten
Das Minimum für double-Werte liegt bei etwa 10^–324 und das Maximum bei etwa 10^308. Weiterhin deklarieren Double und Float Konstanten für MAX_EXPONENT/MIN_EXPONENT.
Hinweis
Die Anzeige des Über-/Unterlaufs und des undefinierten Ergebnisses gibt es nur bei Fließkommazahlen, nicht aber bei Ganzzahlen.
public final class java.lang.Float/Double
extends Number
implements Comparable<Float/Double>
§ static boolean isInfinite(float/double v)
Liefert true, wenn v entweder POSITIVE_INFINITY oder NEGATIVE_INFINITY ist.
§ static boolean isFinite(float/double d)
Liefert true, wenn d eine endliche Zahl ist. Neu in Java 8.