JavaScript/parseInt: Unterschied zwischen den Versionen
K (typo) |
K (typo) |
||
| Zeile 25: | Zeile 25: | ||
</body> | </body> | ||
</html> | </html> | ||
| − | </pre> | + | </pre> |
}} | }} | ||
| − | + | ||
Das Beispiel definiert einen [[JavaScript/Objekte/Array|<code>Array</code>]] mit verschiedenen Elementen, die teils ganze, teils Kommazahlen, teils gar keine Zahlen darstellen. Dann werden in einer for-Schleife alle Elemente des Arrays mit der [[JavaScript/Objekte/window/document/write|<code>write()</code>]]-Methode dynamisch in die Datei geschrieben. Dabei wird jedoch die Funktion <code>parseInt()</code> auf das jeweilige <code>Array</code>-Element angewendet. | Das Beispiel definiert einen [[JavaScript/Objekte/Array|<code>Array</code>]] mit verschiedenen Elementen, die teils ganze, teils Kommazahlen, teils gar keine Zahlen darstellen. Dann werden in einer for-Schleife alle Elemente des Arrays mit der [[JavaScript/Objekte/window/document/write|<code>write()</code>]]-Methode dynamisch in die Datei geschrieben. Dabei wird jedoch die Funktion <code>parseInt()</code> auf das jeweilige <code>Array</code>-Element angewendet. | ||
| − | + | ||
{{Beachten| | {{Beachten| | ||
| − | Die Methode <code>parseInt()</code> erlaubt einen zweiten, optionalen Parameter ''radix''. Dieser Parameter enthält die Basis des verwendeten Zahlensystems. Der Aufruf <code>parseInt(string, radix)</code> ermittelt aus dem String, der eine Zahl eines anderen Zahlensystems darstellt, die dazugehörige Dezimalzahl. Die Methode <code>parseInt()</code> kann damit gleichzeitig als Umrechner von Zahlen anderer Zahlensysteme in das dezimale Zahlensystem verwendet werden. So ergibt z.B. der Aufruf <code>parseInt("11111", 2)</code> die Zahl <code>31</code>. Der optionale Parameter kann Werte zwischen 2 und 36 annehmen. Mit der Methode [[JavaScript/Objekte/Number/toString | + | Die Methode <code>parseInt()</code> erlaubt einen zweiten, optionalen Parameter ''radix''. Dieser Parameter enthält die Basis des verwendeten Zahlensystems. Der Aufruf <code>parseInt(string, radix)</code> ermittelt aus dem String, der eine Zahl eines anderen Zahlensystems darstellt, die dazugehörige Dezimalzahl. Die Methode <code>parseInt()</code> kann damit gleichzeitig als Umrechner von Zahlen anderer Zahlensysteme in das dezimale Zahlensystem verwendet werden. So ergibt z.B. der Aufruf <code>parseInt("11111", 2)</code> die Zahl <code>31</code>. Der optionale Parameter kann Werte zwischen 2 und 36 annehmen. Mit der Methode [[JavaScript/Objekte/Number/toString|<code>toString()</code>]] des [[JavaScript/Objekte/Number|<code>Number</code>]]-Objektes können Sie umgekehrt Dezimalzahlen in Zeichenketten von Zahlen anderer Zahlensysteme konvertieren. Dabei ist - im Gegensatz zur Methode <code>parseInt()</code> - auch das Umwandeln von Kommazahlen möglich.<br> <br>Besonders im Bereich der Datumsberechnung werden häufig Zahlen mit führender Null benutzt. Einfache Aufgaben wie <code>alert(08 * 60)</code> liefern dann scheinbar falsche Ergebnisse oder gar Fehlermeldungen. Des Rätsels Lösung dafür ist, dass JavaScript Zahlen mit führender 0 als Oktalzahlen interpretiert, nicht als Dezimalzahlen. Mit einer Anweisung wie <code>alert(parseInt("08", 10) * 60)</code> können Sie das Problem vermeiden und erzwingen, dass der Wert dezimal interpretiert wird. |
| − | |||
}} | }} | ||
Version vom 31. Mai 2014, 18:48 Uhr
Die Funktion parseInt() wandelt eine zu übergebende Zeichenkette in eine Ganzzahl um und gibt diese als Ergebnis zurück. Sinnvoll, um z.B. Anwendereingaben in Zahlen umzuwandeln, mit denen man anschließend rechnen kann.
Gibt NaN (Not a Number) zurück, wenn die Zeichenkette mit Zeichen beginnt, die sich nicht als Teil einer Zahl interpretieren lassen.
Wenn die Zeichenkette weiter hinten ungültige Zeichen enthält, wird die Zahl bis zum ersten ungültigen Zeichen interpretiert und der interpretierte Teil zurückgegeben. Das gilt bei parseInt() auch für den Punkt.
<html>
<head>
<title> Test </title>
</head>
<body>
<script type="text/javascript">
var Elemente = new Array("18", "18.1", "18.9", "abc", "1a");
document.write("<h1>Anwendung von <i>parseInt()<\/i><\/h1>");
for (var i = 0; i < Elemente.length; ++i)
document.write(Elemente[i] + " = <b> " + parseInt(Elemente[i]) + "<\/b><br>");
</script>
</body>
</html>
Das Beispiel definiert einen Array mit verschiedenen Elementen, die teils ganze, teils Kommazahlen, teils gar keine Zahlen darstellen. Dann werden in einer for-Schleife alle Elemente des Arrays mit der write()-Methode dynamisch in die Datei geschrieben. Dabei wird jedoch die Funktion parseInt() auf das jeweilige Array-Element angewendet.
parseInt() erlaubt einen zweiten, optionalen Parameter radix. Dieser Parameter enthält die Basis des verwendeten Zahlensystems. Der Aufruf parseInt(string, radix) ermittelt aus dem String, der eine Zahl eines anderen Zahlensystems darstellt, die dazugehörige Dezimalzahl. Die Methode parseInt() kann damit gleichzeitig als Umrechner von Zahlen anderer Zahlensysteme in das dezimale Zahlensystem verwendet werden. So ergibt z.B. der Aufruf parseInt("11111", 2) die Zahl 31. Der optionale Parameter kann Werte zwischen 2 und 36 annehmen. Mit der Methode toString() des Number-Objektes können Sie umgekehrt Dezimalzahlen in Zeichenketten von Zahlen anderer Zahlensysteme konvertieren. Dabei ist - im Gegensatz zur Methode parseInt() - auch das Umwandeln von Kommazahlen möglich.Besonders im Bereich der Datumsberechnung werden häufig Zahlen mit führender Null benutzt. Einfache Aufgaben wie
alert(08 * 60) liefern dann scheinbar falsche Ergebnisse oder gar Fehlermeldungen. Des Rätsels Lösung dafür ist, dass JavaScript Zahlen mit führender 0 als Oktalzahlen interpretiert, nicht als Dezimalzahlen. Mit einer Anweisung wie alert(parseInt("08", 10) * 60) können Sie das Problem vermeiden und erzwingen, dass der Wert dezimal interpretiert wird.