CX_UNIT_RATE::UnitConvert
Beschreibung:
Diese Funktion konvertiert eine Einheit in eine andere. Dazu wird die Ausgangseinheit und die Zieleinheit, in die konvertiert werden soll, übergeben. Der Rückgabewert stellt den bei der Konversion übrigbleibenden Rest dar. Um feststellen zu können, ob die Konversion erfolgreich war, wird ein Objekt übergeben, das nach der Konversion als Wahrheitswert anzeigt, ob sie erfolgreich war.
Code-Beispiel:
In dem Beispiel-Programm wird eine Konvertierung von "6 m" in
Stangen durchgeführt, wobei angenommen wird, das ein Einheiten-Verhältnis von
"1 Stange = 2,4 m" definiert wurde.
Var(unitRate, fromValue, toValue, converted)
... // Definition des Einheiten-Verhältnisses, das in
unitRate gespeichert wird
CreateTransObject(CX_VALUE) -> fromValue
"6 m" fromValue Put
CreateTransObject(CX_VALUE) -> toValue
"0 Stangen" toValue Put
CreateTransObject(CX_NUMERIC) -> converted
fromValue toValue converted unitRate Call(UnitConvert)
In diesem Beispiel ist eine Konvertierung von Meter in Stangen möglich, so dass
der Wahrheitswert converted TRUE (den Wert "1") enthält. Der
Wert von toValue hat sich auf "2 Stangen" geändert. Der bei
der Konvertierung übrigbleibende Rest von "1,2 m" befindet sich nach
dem Funktionsaufruf auf dem Stack.
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_UNIT_RATE | das Einheiten-Verhältnis |
Top-1 | CX_NUMERIC | der Wahrheitswert, der anzeigt, ob die Konvertierung erfolgreich war | |
Top-2 | CX_VALUE | die Zieleinheit; nach erfolgreicher Konvertierung ist der Nummernanteil des Wertes neu gesetzt, ansonsten bleibt er unverändert | |
Top-3 | CX_VALUE | die Ausgangseinheit | |
Stack(Out) | Top | CX_VALUE oder NULL | der bei der Konvertierung übrigbleibende Rest |