Der FoxPro-Kompatible Skriptinterpreter
🔎
Newsletter
Der FoxPro-Kompatible Skriptinterpreter

+

+(Left AS Any?, Right AS Any?) AS Any?


Der Operator addiert zwei nummerische Werte oder kombiniert zwei Zeichenketten miteinander. Wenn einer der Parameter Null ist, dann ist das Ergebnis auch Null.

Definitionsmatrix

Der Operator ist für die folgenden Datentypen definiert.


Null
Integer
Numeric
Money
Date
Datetime
String
Null
Null
Null
Null
Null
Null
Null
Null
Integer
Null
Integer
Numeric
Money
Date
Datetime
Numeric
Null
Numeric
Numeric
Money
Date
Datetime
Money
Null
Money
Money
Money


Date
Null
Date
Date



Datetime
Null
Datetime
Datetime



String
Null





String

Besonderheiten beim kombinieren von Zeichenketten

Wenn Zeichenketten mit unterschiedlichen Zeichensätzen miteinander kombiniert werden, dann erbt der rechte Operand den Zeichensatz des linken Operanden. Wenn allerdings einer der Operanden keine Zeichensatzinformation zur Verfügung stellt, also es sich um eine binäre Zeichenkette handelt, dann ist die neue Zeichenkette auch eine binäre Zeichenkette.

  1
  2
  3
  4
  5
= cpconvert("ascii""boese")
= cpconvert("utf8""böse")
"a"charset(a), "+ a"charset(a), "=", a + a, charset(a + a)
"b"charset(b), "+ a"charset(a), "=", b + a, charset(b + a)
"a"charset(a), "+ b"charset(b), "=", a + b, charset(a + b)

a ascii + a ascii = boeseboese ascii
b utf-8 + a ascii = böseboese utf-8
a ascii + b utf-8 = boeseböse utf-8

Besonderheiten beim addieren von Fließkommazahlen

DO führt nach jeder Addition von Fließkommazahlen eine Rundungsoperation auf die Anzahl der signifikaten Dezimalstellen durch, sofern diese bekannt sind. Wenn die Operanden Left und Right unterschiedlich viele signifikante Dezimalstellen haben, erbt die neue Zahl die größere Anzahl an signifikaten Stellen beider Operanden. Wenn die neue Fließkommazahl von der Größe her, unter Berücksichtigung der Anzahl der signifikaten Dezilmalstellen, in einem Integer-Register passt, verwendet DO Integer-Register zum Runden der Zahl, wodurch die Rundungsoperation genauer wird.