Version 11 (Geändert)
Num (Ausdruck; Trenner) Numerisch
Parameter | Typ | Beschreibung | |
Ausdruck | String | Boolean | Num | String, der in eine Zahl umgewandelt | |
werden soll oder Boolean | |||
um 0 oder 1 zurückzugeben, oder | |||
Numerischer Ausdruck | |||
Trenner | String | Dezimaltrenner | |
Funktionsergebnis | Numerisch | Zahlenform des Parameters Ausdruck |
Beschreibung
Die Funktion Num gibt den Zahlenwert des String, Boolean oder numerischen Ausdrucks zurück, definiert in Ausdruck . Mit dem optionalen Parameter Trenner können Sie einen spezifischen Dezimaltrenner für einen Zahlenwert in Ausdruck übergeben.
Ausdrücke vom Typ Text
Enthält Ausdruck nur Buchstaben, gibt Num den Wert 0 zurück. Enthält Ausdruck Buchstaben und Zahlen, ignoriert Num die Buchstaben. So wandelt Num die Zeichenkette "a1b2c3" um in die Zahl 123.
Hinweis: Nur die ersten 32 Zeichen von Ausdruck werden bewertet.
Es gibt drei reservierte Zeichen, die Num besonders behandelt: Der im System definierte Dezimaltrenner (wenn der Parameter Trenner nicht übergeben ist), den Bindestrich "-" und "e" oder "E". Diese Zeichen werden als numerische Formate interpretiert.
Das Dezimaltrennzeichen, z.B. "." gilt als Trennzeichen für Dezimalwerte. Es muss innerhalb einer Zahl erscheinen. Die Funktion verwendet standardmäßig das vom Betriebssystem vorgegebenen Trennzeichen. Mit dem Parameter Trenner können Sie ein anderes Zeichen festlegen.
Der Bindestrich gilt als Minuszeichen. Er muss vor der Zahl erscheinen oder nach dem "e" für einen Exponenten. Steht innerhalb einer Zahl ein Bindestrich, gibt Num den Wert Null (0) zurück.
Beispiel: Num(123-456) ergibt 0, Num(-9) ergibt -9.
Das e bzw. E gilt als Exponent eines Zahlenwertes. Es muss innerhalb einer Zahl erscheinen. Beispiel: Num("123e2") ergibt 1,23.
Die Funktion verwendet standardmäßig den Dezimaltrenner, der im Betriebssystem definiert ist. Wird der zu bewertende String mit einem Dezimaltrenner dargestellt, der sich vom Trenner des Systems unter-scheidet, gibt die Funktion ein falsches Ergebnis zurück.
Mit dem optionalen Parameter Trenner können Sie eine korrekte Bewertung erzielen. Ist dieser Parameter übergeben, berücksichtigt die Funktion nicht die Dezimaltrenner des Systems. Sie können ein oder mehrere Zeichen übergeben.
Hinweis: Der Befehl GET SYSTEM FORMAT ermöglicht, den aktuellen Dezimaltrenner sowie andere landesspezifische Systemparameter zu finden.
Ausdrücke vom Typ Boolean
Übergeben Sie einen Boolean Ausdruck, gibt Num den Wert 1 zurück, wenn der Ausdruck wahr ist; sonst den Wert Null (0).
Numerische Ausdrücke
Übergeben Sie in Ausdruck einen numerischen Ausdruck, gibt Num den Zahlenwert wie eingetragen zurück. Das ist besonders bei generischer Programmierung mit Zeigern hilfreich.
Beispiele
1. Folgendes Beispiel zeigt, wie Num bei Ausdrücken vom Typ Text arbeitet. Jede Zeile weist der Variablen vResult eine Zahl zu:
vResult := Num ("ABCD") ` vResult ergibt 0 vResult := Num ("A1B2C3") ` vResult ergibt 123 vResult := Num ("123") ` vResult ergibt 123 vResult := Num ("123,4") ` vResult ergibt 123,4 vResult := Num ("123") ` vResult ergibt 123 vResult := Num ("123e2") ` vResult ergibt 12300
2. Im Folgenden wird [Client]Debt mit $1000 verglichen. Num gibt entweder 1 oder 0 zurück. Die Multiplikation mit 1 bzw. 0 wiederholt den Text bzw. gibt einen leeren Text zurück. [Client]Risk erhält als Ergebnis entweder "Gut" oder "Schlecht":
` Schuldet der Kunde unter 1000, gutes Risiko. ` Schuldet der Kunde über 1000, schlechtes Risiko. [Client]Risk:=("Gut"*Num ([Client]Debt<1000))+("Schlecht"*Num([Client]Debt>=1000))
3. Dieses Beispiel vergleicht die erhaltenen Ergebnisse abhängig vom "aktuellen" Trenner:
$thestring:="33,333.33"
$thenum:=Num($thestring) ` Standardmäßig entspricht $thenum 33,33333 auf einem deutschen System $thenum:=Num($thestring;".") ` $thenum wird korrekt bewertet unabhängig vom System; ` zum Beispiel 33333,33 auf einem deutschen System
Referenz
Boolean Operatoren, GET SYSTEM FORMAT, String, String Operatoren.