SELFHTML: JavaScript / Objektreferenz / Number
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Welche Aufgaben und Eigenschaften das Number-Objekt in JavaScript hat.
Keywords: SELFHTML, JavaScript, Objekte, Zahlen, numerische Werte, Number, MAX_VALUE, MIN_VALUE, NaN, NEGATIVE_INFINITY, POSITIVE_INFINITY, toExponential, toFixed, toPrecision
Date: 2005-10-28T20:44:22+02:00

| # Number
| Allgemeines zur Verwendung ### Eigenschaften: MAX_VALUE (größte speicherbare Zahl) MIN_VALUE (kleinste speicherbare Zahl) NaN (keine gültige Zahl) NEGATIVE_INFINITY (Zahl zu klein) POSITIVE_INFINITY (Zahl zu groß) ### Methoden: toExponential() toFixed() toPrecision() toString()

## Number: Allgemeines zur Verwendung

Über das Objekt `Number` haben Sie Zugriff auf Eigenschaften numerischer Werte. So können Sie ermitteln, ob ein Wert eine gültige Zahl ist, oder welches die maximale positive oder negative Zahl ist, die in einer numerischen Variablen gespeichert werden kann.

Eigenschaften des Number-Objekts können Sie direkt ansprechen, indem Sie `Number` davor notieren.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    var groessteZahl = Number.MAX_VALUE;
    alert(groessteZahl);
    var Monat = 13;
    if (Monat < 1 || Monat > 12) {
      Monat = Number.NaN;
      alert(Monat);
    }
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert zunächst eine Variable namens `groessteZahl`. Dieser Variablen wird die Eigenschaft `Number.MAX_VALUE` zugewiesen. Anschließend steht in `groessteZahl` die größte Zahl, die JavaScript verarbeiten kann. Die Zahl wird zur Kontrolle ausgegeben. Da die Zahl viel zu groß ist, um sie direkt darzustellen, wird sie von JavaScript automatisch in Exponentialschreibweise dargestellt.

Dann definiert das Beispiel eine Variable namens `Monat` und weist dieser Variablen den Wert `13` zu. Danach wird abgefragt, ob der Wert von `Monat`, wie es sich für Monate gehört, zwischen 1 und 12 liegt. Wenn nicht (und das ist im Beispiel ja der Fall), wird der Variablen `Monat` die Eigenschaft `Number.NaN` zugewiesen. Der Wert von `Monat` ist danach `NaN`. Das bedeutet so viel wie: auf jeden Fall keine bzw. eine ungültige Zahl. Zur Kontrolle wird der neue Wert von `Monat` ausgegeben.

## MAX_VALUE

Speichert die größte erlaubte Zahl.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    var groessteZahl = Number.MAX_VALUE;
    alert(groessteZahl);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert eine Variable namens `groessteZahl`. Dieser Variablen wird die Eigenschaft `Number.MAX_VALUE` zugewiesen. Anschließend steht in `groessteZahl` die größte Zahl, die JavaScript verarbeiten kann. Das Ergebnis wird zur Kontrolle ausgegeben.

## MIN_VALUE

Speichert die kleinste (positive) erlaubte Zahl.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    var kleinsteZahl = Number.MIN_VALUE;
    alert(kleinsteZahl);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert eine Variable namens `kleinsteZahl`. Dieser Variablen wird die Eigenschaft `Number.MIN_VALUE` zugewiesen. Anschließend steht in `kleinsteZahl` die "größte" positive Zahl, die JavaScript verarbeiten kann. Das Ergebnis wird zur Kontrolle ausgegeben.

## NaN

`NaN` ist ein vordefinierter Wert (keine gültige Zahl). Dieser Wert kann z.B. als Rückgabewert für ungültige Zahlen verwendet werden.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    var Zahl_1 = "3a";
    var Zahl_2 = "3";
    if (Zahl_1 != 3)
      Zahl_1 = Number.NaN;
    if (Zahl_2 != 3)
      Zahl_2 = Number.NaN;
    alert(Zahl_1);
    alert(Zahl_2);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert zwei Variablen `Zahl_1` und `Zahl_2`. Dabei wird `Zahl_1` mit dem Wert `3a` vorbelegt, `Zahl_2` mit dem Wert `3`. Anschließend wird für beide Variablen abgefragt, ob die Variable ungleich der Zahl 3 ist. Wenn ja, also wenn der Wert nicht 3 ist, wird der entsprechenden Variablen die Eigenschaft `Number.NaN` (keine gültige Zahl)zugewiesen. Abschließend werden beide Variableninhalte ausgegeben. `Zahl_1` hat nun den Wert `NaN`, weil es ungleich 3 war und deshalb die Eigenschaft `NaN` zugewiesen bekam. `Zahl_2` dagegen speichert den Wert `3`, da es als gültige Zahl 3 anerkannt wurde - obwohl sie bei der Initialisierung die 3 als Zeichenkette zugewiesen bekam: hier greift die interne automatische Typumwandlung in JavaScript.

### Beachten Sie:

Mit der Eigenschaft `Number.NaN` können Sie nicht die Gültigkeit einer Zahl prüfen, sondern ihr nur die Eigenschaft keine gültige Zahl zuweisen. Die Gültigkeit einer Zahl können Sie mit der Methode isNaN() prüfen.

## NEGATIVE_INFINITY

Dies ist ein vordefinierter Wert (Ausgabewert: `-Infinity`). Er gibt an, ob eine (negative) Zahl zu klein ist für JavaScript, also außerhalb des Bereichs liegt, dessen Grenze durch MIN_VALUE markiert ist. Der Wert kann z.B. als Rückgabewert für zu kleine Zahlen verwendet werden.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    var Zahl = Number.MAX_VALUE * -2;
    alert(Zahl);
    var Monat = -1;
    if (Monat < 1)
      Monat = Number.NEGATIVE_INFINITY;
    alert(Monat);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert eine Variable `Zahl` der als Wert das Produkt aus `Number.MAX_VALUE`, also der größten möglichen Zahl, und -2 zugewiesen wird. Die Multiplikation erzeugt eine negative Zahl, die kleiner ist als die kleinste erlaubte Zahl. Dadurch erhält die Variable `Zahl` den Wert `-Infinity`. Dieser bedeutet, dass der erlaubte Wertebereich unterschritten wurde. Im ersten Teil des Beispieles weißt JavaScript automatisch dem Ergebnis den Wert von `Number.NEGATIVE_INFINITY` zu. Im zweiten Teil wird eine Variable Monat deklariert. Diese erhält den ungültigen Wert -1. In der nachfolgenden Abfrage wird geprüft, ob Monat kleiner als 1 ist und ihr wird in diesem Fall die Eigenschaft `Number.NEGATIVE_INFINITY` zugewiesen.

### Beachten Sie:

Mit der Eigenschaft `Number.NEGATIVE_INFINITY` können Sie nicht prüfen, ob eine Zahl zu klein für JavaScript ist. Die Gültigkeit einer Zahl können Sie mit der Methode isFinite() prüfen.

## POSITIVE_INFINITY

Dies ist ein vordefinierter Wert (Ausgabewert: `Infinity`). Er gibt an, ob eine Zahl zu groß ist für JavaScript, also außerhalb des Bereichs liegt, dessen Grenze durch MAX_VALUE markiert ist. Der Wert kann z.B. als Rückgabewert für zu große Zahlen verwendet werden.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    Zahl = Number.MAX_VALUE * 2;
    alert(Zahl);
    var Monat = 13;
    if (Monat > 12)
      Monat = Number.POSITIVE_INFINITY;
    alert(Monat);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel definiert eine Variable `Zahl` der als Wert das Produkt aus `Number.MAX_VALUE`, also der größten möglichen Zahl, und 2 zugewiesen wird. Die Multiplikation erzeugt eine Zahl, die größer ist als die größte erlaubte Zahl. Dadurch erhält die Variable `Zahl` den Wert `Infinity`. Dieser bedeutet, dass der erlaubte Wertebereich überschritten wurde. Im ersten Teil des Beispieles weist JavaScript dem Ergebnis den Wert von `Number.NEGATIVE_INFINITY` zu. Im zweiten Teil wird eine Variable `Monat` deklariert. Diese erhält den ungültigen Wert `13`. In der nachfolgenden Abfrage wird geprüft, ob Monat größer als 12 ist. In diesem Fall wird ihr die Eigenschaft `Number.POSITIVE_INFINITY` zugewiesen.

### Beachten Sie:

Mit der Eigenschaft Number.POSITIVE_INFINITY können Sie nicht prüfen, ob eine Zahl zu groß für JavaScript ist. Die Gültigkeit einer Zahl können Sie mit der Methode isFinite() prüfen.

## toExponential()

Erzwingt die Exponentialschreibweise einer Zahl.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    var Wert = 13.000012345;
    document.write(Wert.toExponential());
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Wert und schreibt das Ergebnis der Anwendung von `toExponential()` auf diesen Wert ins Dokument. Geschrieben wird `1.3000012345e+1`.

## toFixed()

Erzwingt eine bestimmte Anzahl Nachkommastellen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    var Wert = 7123.203848;
    document.write(Wert.toFixed(2));
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Wert und schreibt das Ergebnis der Anwendung von `toFixed(2)` auf diesen Wert ins Dokument. Geschrieben wird `7123.20`, weil der an die Methode im Beispiel übergebene Wert `2` so viel bedeutet wie: schneide nach 2 Nachkommastellen ab.

### Beachten Sie:

Diese Methode rundet automatisch kaufmännisch. Würde der Wert im Beispiel `7123.209848` lauten, dann würde `7123.21` ermittelt.

## toPrecision()

Erzwingt eine bestimmte Genauigkeit bei der Darstellung einer Zahl.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    Wert = 7123.209;
    document.write("precision(1) = " + Wert.toPrecision(1) + "<br>");
    document.write("precision(2) = " + Wert.toPrecision(2) + "<br>");
    document.write("precision(3) = " + Wert.toPrecision(3) + "<br>");
    document.write("precision(4) = " + Wert.toPrecision(4) + "<br>");
    document.write("precision(5) = " + Wert.toPrecision(5) + "<br>");
    document.write("precision(6) = " + Wert.toPrecision(6) + "<br>");
    document.write("precision(7) = " + Wert.toPrecision(7) + "<br>");
    document.write("precision(8) = " + Wert.toPrecision(8) + "<br>");
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Wert und schreibt dann mehrfach das Ergebnis der unterschiedlichen Anwendung von `toPrecision(x)` auf diesen Wert ins Dokument. Geschrieben wird:
`precision(1) = 7e+3
precision(2) = 7.1e+3
precision(3) = 7.12e+3
precision(4) = 7123
precision(5) = 7123.2
precision(6) = 7123.21
precision(7) = 7123.209
precision(8) = 7123.2090`

## toString()

Wandelt eine Zahl in eine Zeichenkette (String) um. Diese Methode ist dann notwendig, wenn Sie Methoden des String-Objekts auf eine Zahl anwenden wollen. Die Methode `toString()` besitzt einen optionalen Parameter. Der Parameter gibt die Basis des gewünschten Zahlensystems an (z.B. 10 für das Dezimalsystem, oder 16 für das Hexadezimalsystem). Der optionale Parameter kann Werte zwischen 2 und 36 annehmen. Wird kein Parameter angegeben, so wird die Zahl als Dezimalzahl behandelt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    var Dezimalzahl = 15.5;
    var Dualzahl = Dezimalzahl.toString(2);
    alert(Dualzahl);
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert eine Variable namens `Dezimalzahl`. Diese Variable enthält die Dezimalzahl `15.5`. Anschließend wird der Variablen `Dualzahl` der Rückgabewert der Methode `toString()` mit dem Parameter `2` zugewiesen. In der Variablen `Dualzahl` ist jetzt die Zahl `15.5` als Dualzahl-Zeichenkette gespeichert. Im Beispiel wird im Meldungsfenster `1111.1` ausgegeben. Damit fungiert die Methode `toString()` gleichzeitig als Umrechner von Zahlen des dezimale Zahlensystem in Zahlen anderer Zahlensysteme. Mit der Methode parseInt() können Sie umgekehrt Zeichenketten von Zahlen anderer Zahlensystem in das dezimale Zahlensystem konvertieren.

### Beachten Sie:

Opera kennt zwar die Methode `toString()`, ignoriert aber den Parameter für das Zahlensystem. Die Umwandlung in eine Dualzahl im Beispiel funktioniert daher nicht. Safari ignoriert bei der Umwandlung in eine Dualzahl die Nachkommastellen, es bleibt nur der Ganzzahlwert übrig.

| RegExp
| plugins

© 2007 Impressum