Nachkommastellen in VBA
Nachkommastellen werden nicht etwa durch ein Komma, sondern durch einen Punkt abgetrennt.
- Numeralia mit dem Wert Zwölf
12
12.0
12.00- Numeralia mit verschiedenen Werten
12.45
12.9876432
1.2
87.0- Direktbereich
? 1.2
1.2
Das obige Zitat aus dem Direktbereich zeigt das Verhalten bei einem Computer, der auf die englischsprachigen Regeln zur Zahlendarstellung eingestellt ist. Daher wird ein Dezimalpunkt ausgegeben. Bei einem Computer, der auf die deutschsprachigen Regeln zur Zahlendarstellung eingestellt ist, würde statt dessen ein Dezimalkomma ausgegeben werden.
- Direktbereich
? 1.2
1,2
Zur Vereinfachung verwenden wir in diesem Text bei jedem Beispiel nur jeweils eine dieser Darstellungen, nämlich in der Regel die mit dem Dezimalpunkt.
Eine Folge von Nullen, die ganz am Ende eines Numerales mit einem Punkt steht, trägt nicht zu seinem Wert bei.
Die Zahl Zwölf kann daher sowohl als »12.0« als auch als »12.00« geschrieben werden.
- Direktbereich
? 12.0
12
? 12.00
12
Nullen am Ende, die hinter einem Punkt stehen, dürfen auch ganz weggelassen werden (falls Ziffern vor dem Punkt stehen), so daß für die Zahl Zwölf auch die Schreibweise »12.« erlaubt ist.
- Numeralia mit dem Wert 12,0
12
12.0
12.00- Numeralia mit dem Wert 12,1
12.1
12.10
12.100- Direktbereich
? 12.
12
Wenn vor dem Punkt nur eine Folge von Nullen steht und hinter dem Punkt noch Ziffern folgen, dann dürfen die Nullen vor dem Punkt auch weggelassen werden.
- Numeralia mit dem Wert 0,12
00.12
0.12
.12- Direktbereich
? .12
0.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.
- Direktbereich
? 3.1415926535897932
3.14159265358979
Der Text »12.00« oder der Text »3.1415926535897932« kann mit einem Zeichenfolgenliteral ausgegeben werden.
- Direktbereich
? "12.00"
12.00
? "3.1415926535897932"
3.1415926535897932
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 |---.--->|-|
^ '---------------' |
| |
'------------------------'Punktnumerale
.-. .--------------.
|-|--->.----------------------->( . )------->| Ziffernfolge |---.--->|-|
| '-' '--------------' ^
| .--------------. .-. |
'--->| Ziffernfolge |--->( . )---.-----------------------'
'--------------' '-' | ^
| .--------------. |
'--->| Ziffernfolge |---'
'--------------'
Semantik
Wert
Der Wert eines Punktnumerales ist zunächst der Wert, den solche ein Numerale auch im Alltag hat. Dabei ist der Punkt durch eine Komma zu ersetzen. 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.
Werte und ihre Darstellung
Der Ausdruckrahmen gibt Darstellungen von Werten, nicht die Werte selber aus.
Wir sprechen von der „Ausgabe einer Darstellung 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. Beispielsweise kann der Wert «12.0» auch also »12.00« dargestellt werden, beides sind zwei verschiedene Darstellungen desselben Wertes. Lesen oder Schreiben kann man nur Darstellungen von Werten, nicht die Werte selber.
Die Darstellung der Zeichenfolge »" 7 "« gleicht der Darstellung der Zahl «7», obwohl intern beides verschiedene Werte sind.
- Direktbereich
? " 7 "
7
? 7
7
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 Darstellung des Wertes ausgegeben wird.
Ü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«?