Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Num
|
Num ( Ausdruck {; Trenner} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Ausdruck | String, Boolean, Lange Ganzzahl |
![]() |
String, der in eine Zahl umgewandelt werden soll oder Boolean, um 0 oder 1 zurückzugeben, oder numerischer Ausdruck | |||||
Trenner | String |
![]() |
Dezimaltrenner | |||||
Funktionsergebnis | Zahl |
![]() |
Zahlenform des Parameters Ausdruck | |||||
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 der Befehl die Buchstaben. So wandelt er die Zeichenkette "a1b2c3" um in die Zahl 123.
Es gibt drei reservierte Zeichen, die Num besonders behandelt: Der im System definierte Dezimaltrenner (wenn der Parameter Trenner nicht übergeben ist), der Bindestrich “-” und “e” oder “E”. Diese Zeichen werden als numerische Formate interpretiert.
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 unterscheidet, 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.
Undefinierte Ausdrücke
Wird Ausdruck als undefiniert gewertet, gibt Num 0 (Null) zurück. Das ist hilfreich, wenn als Ergebnis eines Ausdrucks (z.B. ein Objektattribut) eine Zahl erwartet wird, auch wenn sie undefiniert ist.
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
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))
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
Produkt: 4D
Thema: String
Nummer:
11
Geändert: 4D v11 SQL
Geändert: 4D v16 R5
4D Programmiersprache ( 4D v20 R7)