Start · Sprachen · JavaScript · Referenz · Number.isInteger()

Number.isInteger()

Methode

Die statische Methode <code>Number.isInteger()</code> prüft, ob der übergebene Wert eine ganze Zahl ist.

Kategorie: method-property

Signatur

Number.isInteger(value)

Beschreibung

Die statische Methode Number.isInteger() bestimmt, ob der übergebene Wert eine ganze Zahl (Integer) ist.

Ist der Zielwert eine ganze Zahl, wird true zurückgegeben, andernfalls false. Ist der Wert NaN oder Infinity, wird false zurückgegeben. Die Methode gibt außerdem true für Fließkommazahlen zurück, die sich als ganze Zahl darstellen lassen. Sie gibt immer false zurück, wenn der Wert keine Zahl ist.

Beachte, dass manche Zahlenliterale zwar wie Nicht-Ganzzahlen aussehen, tatsächlich aber ganze Zahlen darstellen — bedingt durch die Präzisionsgrenze der ECMAScript-Fließkommazahlen-Kodierung (IEEE-754). Zum Beispiel unterscheidet sich 5.0000000000000001 nur um 1e-16 von 5, was zu klein ist, um dargestellt zu werden. (Zur Referenz: Number.EPSILON speichert den Abstand zwischen 1 und der nächst darstellbaren Fließkommazahl größer als 1, das sind etwa 2.22e-16.) Daher wird 5.0000000000000001 mit der gleichen Kodierung wie 5 dargestellt, wodurch Number.isInteger(5.0000000000000001) den Wert true zurückgibt.

In ähnlichem Sinne verlieren Zahlen in der Größenordnung von Number.MAX_SAFE_INTEGER an Präzision und lassen Number.isInteger auch dann true zurückgeben, wenn es sich nicht um eine ganze Zahl handelt. (Die tatsächliche Schwelle hängt davon ab, wie viele Bits zur Darstellung des Dezimalteils benötigt werden — zum Beispiel ist Number.isInteger(4500000000000000.1) gleich true, aber Number.isInteger(4500000000000000.5) gleich false.)

Parameter

Name Typ Default Beschreibung
$value Pflicht any Der Wert, der auf ganze Zahl geprüft werden soll.

Rückgabewert

Typ
boolean
Beschreibung
Der boolesche Wert true, wenn der gegebene Wert eine ganze Zahl ist. Andernfalls false.

Beispiele

Verwendung von isInteger

Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false

Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false

Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true, because of loss of precision
Number.isInteger(4500000000000000.1); // true, because of loss of precision

Siehe auch