Nachkommastellen in JavaScript
Punktnumeralia
Nachkommastellen werden nicht etwa durch ein Komma, sondern durch einen Punkt abgetrennt. Die Zahl ‹ 12,23 › wird in JavaScript also als »12.23« geschrieben.
- Numeralia mit dem Wert 12
12
12.0
12.00- Numeralia mit verschiedenen Werten
12.45
12.9876432
1.2
87.0- Auswertung
12.0
12
Eine Folge von Nullen, die ganz am Ende eines Numerales mit einem Punkt hinter dem Punkt steht, trägt nicht zu seinem Wert bei.
Die Zahl 12 kann daher sowohl als »12.0« als auch als »12.00« geschrieben werden.
- Auswertung
12.00
12
- Auswertung
12.0
12
Führende Nullen (also eine Null am Anfang, der eine Ziffer folgt) sind nicht erlaubt, der Text »012.1« ist also kein erlaubtes Punktnumerale.
Nullen am Ende dürfen auch ganz weggelassen werden, so daß für die Zahl 12,0 auch die Schreibweise »12.« erlaubt ist.
- Auswertung
12.
12
Bei der Ausgabe eines Wertes mit Nachkommastellen wird dieser manchmal auf ein bestimmte Anzahl von Stellen abgeschnitten. Dies liegt daran, daß der Computer auch nur eine bestimmte Anzahl von Stellen verarbeiten und speichern kann.
- Auswertung
3.1415926535897932
3.141592653589793
Der Text »12.00« oder der Text »3.1415926535897932« kann mit einem Zeichenfolgenliteral ausgegeben werden.
- Auswertung
"12.00"
"12.00"
"3.1415926535897932"
"3.1415926535897932"
Bei der Ausgabe in der Konsole erscheinen ausgegebene Texte unter bestimmten Umständen in Anführungzeichen »"«. Diese Anführungszeichen werden aber sonst in der Regel nicht mit ausgegeben, wenn mit JavaScript an anderen Stellen etwas ausgegeben wird. Normalerweise erscheint die Ausgabe eines Textes also ohne die Anführungszeichen.
Wir können nun auch zwischen ganzzahligen Numeralia (wie »32767« oder »22«) ohne Punkt und Punktnumeralia (wie »12.0 oder »12.00«) mit einem Punkt unterscheiden.
Aufbau
- Aufbaudiagramm
Ziffernfolge
.---------------.
|-|--->| Dezimalziffer |--->.------------------------.--->|-|
'---------------' ^ |
| .---------------. |
'---| Dezimalziffer |<---'
'---------------'Punktnumerale
.-. .--------------.
|-|--->.------------------------------>( . )------->| Ziffernfolge |---.--->|-|
| '-' '--------------' ^
| .-----------------. .-. |
'--->| Dezimalnumerale |--->( . )---.-----------------------.---'
'-----------------' '-' | ^
| .--------------. |
'--->| Ziffernfolge |---'
'--------------'
In dem obenstehendem Diagramm bezieht sich »Dezimalnumerale« auf ein Diagramm aus einer früheren Lektion.
Durch die hier vorgestellten Punktnumeralia wird die Bedeutung des Wortes „Numerale“ aus einer früheren Lektion nun erweitert: Sowohl die früher vorgestellten Dezimalnumeralia als auch die in dieser Lektion neu vorgestellten Punktnumeralia sind Numeralia.
Anzahl der gültigen Stellen
Zahlen werden nicht mit unbegrenzter Genauigkeit dargestellt. Ab zirka der 15. Stelle kann es zu Verfälschungen des Wertes kommen.
- Auswertung
1.9999999999999999
2
- Auswertung
9223372036854775808
9223372036854776000
- Auswertung
9999999999999999999
10000000000000000000
Zahlenwerte sind in den hinteren Stellen also manchmal ungenau. Daher sollten sie für prinzipiell ungenaue Werte verwendet werden, wie beispielsweise Meßwerte kontinuierlicher Größen (wie Länge, Geschwindigkeiten oder Temperaturen). Solche Werte können praktisch nie auf mehr als 14 Stellen gemessen werden, so daß es für ihre Speicherung und Verarbeitung akzeptabel ist, wenn ab der 14. Stelle Fehler auftreten.
Bei ganzen Zahlen bis zu 9007199254740991 (2⁵³-1, also zirka 9×10¹⁵) sind Zahlenwerte aber genau, in dem Sinne, daß bis zu diesem Wert alle eingegebenen ganzen Zahlen auch wieder genau so ausgegeben werden, wie sie eingegeben wurden.
Ungenauigkeiten in den Nachkommastellen würden bei Währungsbeträgen Probleme bereiten. Hier kann es unter Umständen hilfreich sein, diese durch Multiplikation mit einer Zahl wie 100 zunächst so zu verändern, daß keine Nachkommastellen mehr auftreten.
Semantik
Wert
Der Wert eines Punktnumerales ist zunächst der Wert, den solche ein Numerale auch im Alltag hat, nachdem der Punkt durch eine Komma ersetzt und gegebenenfalls eine Null ergänzt wurde, um zu verhindern, daß das Numerale direkt mit dem Komma beginnt oder endet. Beispielsweise ist der Wert des Punktnumerales »12.2« gleich 12,2. Allerdings gilt dies nur näherungsweise, da nicht alle Werte mit Nachkommastellen genau dargestellt werden können. Die Abweichungen vom richtigen Wert sind aber meist so klein, daß sie nicht weiter stören.
- Numerale und Wert
Numerale Wert
1. 1
1.0 1
1.00 1
12.2 12,2
Werte und ihre Textdarstellung
Die Konsole gibt Textdarstellungen von Werten, nicht die Werte selber aus.
Wir sprechen von der „Ausgabe einer Textdarstellung des Wertes «7» “, weil Werte im allgemeinen keine ausdruckbaren Zeichenfolgen sind. Eine ausgedruckte Zeichenfolge, wie »7«, ist also nicht ein Wert selber, sondern nur eine Darstellung des Wertes durch einen Text. Beispielsweise kann der Wert «12.0» auch als »12.00« dargestellt werden, beides sind zwei verschiedene Textdarstellungen desselben Wertes. Lesen oder Schreiben kann man nur Darstellungen von Werten, nicht die Werte selber.
Zur Vereinfachung kann man aber auch von der „Ausgabe eines Wertes “ sprechen, wenn man weiß, daß dabei nicht wirklich der Wert selber, sondern nur eine Textdarstellung des Wertes ausgegeben wird.
Literale
Ein Oberbegriff für ganzzahlige Numeralia und Punktnumeralia ist „Numerale“ (numerisches Literal).
Ein Oberbegriff für Numeralia und Zeichenfolgenliterale ist „Literal“.
Ein Literal dient der Angabe eines Wertes.
- Literal (Aufbaudiagramm)
Literal
.----------------------.
|-|--->.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' ^
| .----------------------. |
'--->| Numerale |---'
| '----------------------' ^
| .----------------------. |
'--->| Punktnumerale |---'
'----------------------'- Literale (Baumdiagramm)
Literal
^
|
.------------------'------------------.
| |
Numerale Zeichenfolgenliteral
^ z.B.: "abc"
|
.------------------'------------------.
| |
ganzzahliges Numerale Punktnumerale
z.B.: 123 z.B.: 1.23
Übungsfragen
? Übungsfrage
Ist der Wert des Numerales »22.0« gleich dem Wert des Numerales »22.00«?
? Übungsfrage
Ist das Numerale »22.0« gleich dem Numerale »22.00«?