Zahlen-Sonderfälle: Nullen, Exponent, Komma
Zahlen, die als Text eingegeben werden, lassen sich oft auf mehrere Arten lesen: mit führenden Nullen, in Exponentialschreibweise, mit Dezimalkomma oder Dezimalpunkt. Die Beispiele zeigen unter anderem 007, 1e3, 0777, 1,5, 1,234.56 und +49 sowie Werte an den Grenzen von 32- und 64-Bit-Ganzzahlen. Sie dienen dazu, Parser, Validierung und Typumwandlung der eigenen Anwendung zu prüfen.
23 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
Zahl als Text mit führenden Nullen: 007
007
Als Zahl geparst wird daraus 7; als Text (Postleitzahl, Kennung) muss sie erhalten bleiben. Testzeichenfolge für eigene Systeme.
Postleitzahl mit führender Null: 01067
01067
Excel und viele Importe machen daraus 1067. Testzeichenfolge für eigene Systeme.
Exponentialschreibweise 1e3
1e3
JavaScript parseFloat ergibt 1000, viele Validatoren akzeptieren oder lehnen sie ab. Testzeichenfolge für eigene Systeme.
Hexadezimal 0x1F
0x1F
Wird von Number() als 31 gelesen, von parseInt ohne Basis ebenfalls. Testzeichenfolge für eigene Systeme.
Oktal-ähnlich 0777
0777
In manchen Sprachen eine Oktalzahl (511), in anderen Dezimal. Testzeichenfolge für eigene Systeme.
Binär 0b1010
0b1010
Number("0b1010") ist 10. Testzeichenfolge für eigene Systeme.
Dezimalkomma 1,5
1,5
Deutsches Format; parseFloat("1,5") ergibt 1. Testzeichenfolge für eigene Systeme.
Tausenderpunkt und Komma 1.234,56
1.234,56
Deutsches Zahlenformat; parseFloat("1.234,56") ergibt 1.234. Testzeichenfolge für eigene Systeme.
Englisches Zahlenformat 1,234.56
1,234.56
Gegenstück zum deutschen Format. Testzeichenfolge für eigene Systeme.
Negative Null -0
-0
Number("-0") ist -0; JSON.stringify gibt 0 aus. Testzeichenfolge für eigene Systeme.
Zahl mit Plus-Vorzeichen +49
+49
Plus vorne, wie bei Vorwahlen; als Zahl 49. Testzeichenfolge für eigene Systeme.
Größter 32-Bit-Integer: 2147483647
2147483647
2^31 − 1; die Zahl danach läuft in vielen Typen über. Testzeichenfolge für eigene Systeme.
Eins über 32-Bit-Integer: 2147483648
2147483648
2^31; passt nicht mehr in ein signiertes INT. Testzeichenfolge für eigene Systeme.
Größter vorzeichenloser 32-Bit-Wert: 4294967295
4294967295
2^32 − 1. Testzeichenfolge für eigene Systeme.
Größter 64-Bit-Integer: 9223372036854775807
9223372036854775807
2^63 − 1; JavaScript-Number kann ihn nicht exakt darstellen. Testzeichenfolge für eigene Systeme.
Eins über der JavaScript-Sicherheitsgrenze: 9007199254740993
9007199254740993
2^53 + 1; als Number wird daraus 9007199254740992. Testzeichenfolge für eigene Systeme.
Infinity
Infinity
Als Text von Number() zu Infinity geparst, in JSON nicht erlaubt. Testzeichenfolge für eigene Systeme.
NaN
NaN
Not a Number als Text. Testzeichenfolge für eigene Systeme.
Fließkomma-Klassiker 0.1 + 0.2
0.1 + 0.2
Ergibt in IEEE 754 doppelter Genauigkeit 0.30000000000000004. Testzeichenfolge für eigene Systeme.
Zahl mit Unterstrichen 1_000
1_000
In Python, Java, JavaScript-Literalen erlaubt, in Parsern meist nicht. Testzeichenfolge für eigene Systeme.
Vollbreite Ziffern 123
123
Dezimalziffern U+FF11 bis U+FF13; manche Parser akzeptieren sie, andere nicht. UTF-16: 3, Codepoints: 3, UTF-8: 9 Bytes. Testzeichenfolge für eigene Systeme.
Bruch als Text 1/2
1/2
Wird als Datum, Bruch oder Text gelesen, je nach Feld. Testzeichenfolge für eigene Systeme.
Zahl mit Leerzeichen 1 000
1 000
Tausendertrennung mit Leerzeichen; Parser lesen nur 1. Testzeichenfolge für eigene Systeme.