4D v16.3

Num

Home

 
4D v16.3
Num

Num 


 

Num ( Ausdruck {; Trenner} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Ausdruck  String, Boolean, Lange Ganzzahl in String, der in eine Zahl umgewandelt werden soll oder Boolean, um 0 oder 1 zurückzugeben, oder numerischer Ausdruck
Trenner  String in Dezimaltrenner
Funktionsergebnis  Zahl in 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 “eoderE”. 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("123e–2") 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 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.

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



Siehe auch 

Boolean Operatoren
GET SYSTEM FORMAT
String
String Operatoren

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String
Nummer: 11

This command can be run in preemptive processes

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)