Konvertierung REAL, LREAL
Wichtig
Wenn die Gleitpunktzahl innerhalb des Wertebereichs des Zieldatentyps liegt, arbeitet die Konvertierung auf allen Systemen gleich.
Wenn allerdings die Gleitpunktzahl die Bereichsgrenze überschreitet, werden die ersten Bytes der Zahl nicht berücksichtigt.
Die Operatoren konvertieren eine Gleitpunktzahl in den angegebenen Datentypen und geben einen typkonvertierten Wert zurück. Bei der Konvertierung wird gegebenenfalls gerundet.
Bei einer REAL_TO_<Zieltyp>-Konvertierung wird zuerst der Wert nach UDINT
konvertiert und erst dann in den Zieltyp gecastet.
Bei der LREAL_TO_<Zieltyp>-Konvertierung wird zuerst der Wert nach ULINT
konvertiert und erst dann in den Zieltyp gecastet.
Aufrufsyntax: REAL_TO_<Zieltyp> ( <Operand> ), LREAL_TO_<Zieltyp> ( <Operand> )
Operand | Typ | Beschreibung |
---|---|---|
Variable oder Literal |
|
REAL/LREAL_TO_<Zieltyp>
Operator REAL | Operator LREAL | Beispiel | Rückgabewert | |
---|---|---|---|---|
|
| REAL_TO___UXINT(1.234) LREAL_TO___UXINT(0.987654321) |
| |
|
| |||
|
| |||
|
| |||
|
| LREAL_TO_BOOL(0.987654321) |
| |
|
| REAL_TO_BYTE(1.234) LREAL_TO_BYTE(0.987654321) |
| |
|
| REAL_TO_DATE(1.234) LREAL_TO_DATE(0.987654321) |
| |
|
| REAL_TO_DINT(1.234) |
| |
|
| REAL_TO_DT(1.234) |
| |
|
| REAL_TO_DWORD(1.234) |
| |
|
| REAL_TO_INT(-1.5) |
| |
|
| REAL_TO_LDATE(1.234) |
| Intern wird zuerst nach |
|
| LREAL_TO_DT(0.987654321) |
| Zieldatentyp |
|
| REAL_TO_LINT(1.234) |
| |
|
| |||
| - | REAL_TO_LREAL(1.234) |
| |
|
| Intern wird zuerst nach | ||
|
| |||
- |
| |||
|
| |||
|
| REAL_TO_STRING(1.234) |
| |
|
| REAL_TO_TIME(1.234) |
| Intern wird zuerst nach UDINT gecastet und dann der Wert in ms zurückgegeben. |
|
| REAL_TO_TOD(1.234) |
| Intern wird zuerst nach UDINT gecastet und dann der Wert als TOD zurückgegeben. Syntax: TOD#hh:mm:ss.sss |
|
| |||
|
| |||
|
| |||
|
| |||
|
| REAL_TO_WORD(1.2345678E11) |
| |
|
| REAL_TO_WSTRING(1.23456789E11) |
|
Runden
Bei der Konvertierung zu einer Integerzahl wird der Operand nach oben oder unten auf einen ganzzahligen Wert gerundet. Bei 1 bis 4 hinter dem Punkt wird abgerundet, bei 5 bis 9 wird aufgerundet. Dann wird die gerundete Zahl in den angegebenen Integertyp konvertiert. Im Fall, dass der gerundete Wert außerhalb des Wertebereichs des Integers liegt, wird ein undefinierter, zielsystem-abhängiger Wert zurückgegeben. Auch ein Ausnahmefehler ist dann möglich.
Zu einem String konvertieren
Bei einer Gleitpunktzahl-Konvertierung zu einem String ist die Anzahl der Nachkommastellen der Mantisse auf 6 begrenzt. Wenn die Zahl < 1 ist, gilt für die Mantisse m: 1 <= m < 10
. Wenn die Mantisse mehr Stellen hinter dem Komma hat, wird auf die 6. Stelle gerundet und dann konvertiert.
Außerdem kann die Stringvariable für den Rückgabewert zu kurz deklariert sein. Dann wird der Rückgabestring rechts abgeschnitten.
