Die Subtraktion »…-…« in VBA
- Direktbereich
? 1 - 1 0 ? "1" - 1 0 ? "1" - "1" 0
Das Zeichen »-« wird „Minus“ oder „Bindestrich“ genannt. Die Subtraktion wird mit dem Minus »-« geschrieben.
- Syntax
Ausdruck
.----------. .-. .----------.
--->| Ausdruck |--->· - ·-->| Ausdruck |--->
'----------' '-' '----------'
Syntax, Typanforderungen, Typergebnisse, Assoziativität und Priorität sind bei diesem binären Operator wie bei der Addition, nur daß hier die Möglichkeiten entfallen, welche bei der Addition zu einer Textverkettung führen, und man den linken Operanden als Minuenden und den rechten als Subtrahenden bezeichnet. Der Wert ist hingegen die Differenz der beiden Werte, welche man durch Abzug des Subtrahenden vom Minuenden erhält, und nicht ihre Summe.
Assoziativität
Die Assoziativität kann man bei der Subtraktion deutlicher erkennen als bei der Addition, weil das Ergebnis einer Abfolge zweier Subtraktionen von der Art der Zusammenfassung von Operanden abhängt.
- Direktbereich
? 2 - 3 - 4 -5
- Operationen bei der Auswertung von »2 - 3 - 4«
_____
2 - 3 - 4 →
-1 - 4 _______
-1 - 4 →
-5
Addition und Subtraktionen haben die gleiche Priorität. Daher wird bei einer Kombination beider Operatoren, in der sie einen Operanden teilen, ebenfalls gemäß der Assoziativität dieser beiden Operatoren von links nach rechts zusammengefaßt.
- Direktbereich
? 2 - 4 + 4 2
- Operationen bei der Auswertung von »2 - 4 + 4«
_____
2 - 4 + 4 →
-2 + 4 ______
-2 + 4 →
2
Nachbildung des unären Minus mit dem binären Minus
Statt »(-4)« kann auch »(0-4)« verwendet werden.
Nachbildung des binären Minus mit dem unären Minus
Statt »(7-4)« kann auch »(7+(-4))« verwendet werden.
Priorität
- Priorität und Assoziativität der bisher behandelten Operatoren
() Eingeklammerter Ausdruck
+ - Unaere vorangestellte Operatoren
/ Division
+ - Addition, Subtraktion
& Verkettung
Beispiele
[*] Gleichheitstest
Die Subtraktion kann gut verwendet werden, um zu erkennen, ob zwei Numeralia den gleichen Zahlenwert repräsentieren: Nur dann ist ihre Differenz gleich 0.
- Direktbereich
? 0 - 0.00 0
Der Wert von »0« ist ja zunächst nicht gleich dem Wert von »0.00«, da beide Werte sich schon im Typ unterscheiden. Da bei dieser Subtraktion der Typ der beiden Operanden jedoch nach »Double« angeglichen wird, ergibt sich dann doch das Ergebnis »0«.
[*] Punktnumeralia
Es wird noch einmal deutlich, daß verschiedene Literale denselben Wert haben können, also sind Literale nicht dasselbe wie ihre Werte.
- Direktbereich
? 2.0 - 1.9999999999999999 0