Conversion : RÉEL, LREAL
Important
Si le nombre à virgule flottante se situe dans la plage de valeurs du type de données cible, la conversion fonctionne de la même manière sur tous les systèmes.
Si le nombre à virgule flottante dépasse la limite de plage, les premiers octets du nombre ne sont pas pris en compte.
Les opérateurs convertissent un nombre à virgule flottante dans les types de données spécifiés et renvoient une valeur convertie en type. Le cas échéant, la conversion est arrondie.
Dans le cas d'un REAL_TO_<type de cible> conversion, la valeur est d'abord convertie en UDINT
et seulement ensuite, convertissez-le en type cible.
Dans le cas de la LREAL_TO_<type de cible> conversion, la valeur est d'abord convertie en ULINT
et seulement ensuite, convertissez-le en type cible.
Syntaxe d'appel: REAL_TO_<type de cible>(<opérande>), LREAL_TO_<type de cible>(<opérande>)
Opérande | Taper | Description |
---|---|---|
Variable ou littéral |
|
REAL/LREAL_TO_<target type>
Opérateur : REAL | Opérateur : LREAL | Exemple | Valeur de retour | |
---|---|---|---|---|
|
| 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) |
| En interne, il est d'abord coulé pour |
|
| LREAL_TO_DT(0.987654321) |
| Type de données cible : |
|
| REAL_TO_LINT(1.234) |
| |
|
| |||
| - | REAL_TO_LREAL(1.234) |
| |
|
| En interne, il est d'abord coulé pour | ||
|
| |||
- |
| |||
|
| |||
|
| REAL_TO_STRING(1.234) |
| |
|
| REAL_TO_TIME(1.234) |
| En interne, il est d'abord converti en ULINT, puis la valeur est renvoyée comme dans ms. |
|
| REAL_TO_TOD(1.234) |
| En interne, il est d'abord converti en UDINT, puis la valeur est renvoyée sous la forme TOD. Syntaxe : TOD#hh:mm:ss.sss |
|
| |||
|
| |||
|
| |||
|
| |||
|
| REAL_TO_WORD(1.2345678E11) |
| |
|
| REAL_TO_WSTRING(1.23456789E11) |
|
Arrondi
Lors de la conversion en nombre entier, l'opérande est arrondi vers le haut ou vers le bas à une valeur entière. Pour les nombres compris entre 1 et 4 après la virgule décimale, le nombre est arrondi vers le bas. Pour les nombres compris entre 5 et 9, le nombre est arrondi vers le haut. Le nombre arrondi est ensuite converti au type entier spécifié. Si la valeur arrondie se situe en dehors de la plage de valeurs entières, une valeur indéfinie, dépendante du système cible, est renvoyée. Une erreur d'exception est alors également possible.
Conversion en chaîne
Pour une conversion de nombre à virgule flottante en chaîne, le nombre de décimales de la mantisse est limité à 6. Si le nombre est < 1, alors la mantisse est 1 <= m < 10
Si la mantisse comporte plus de chiffres après la virgule, elle est alors arrondie au 6e chiffre puis convertie.
La variable chaîne peut également être déclarée trop courte pour la valeur de retour. Dans ce cas, la chaîne de retour est tronquée à droite.
