Conversión: REAL, LREAL
Importante
Si el número de punto flotante está dentro del rango de valores del tipo de datos de destino, la conversión funciona de la misma manera en todos los sistemas.
Si el número de punto flotante excede el límite del rango, no se tienen en cuenta los primeros bytes del número.
Los operadores convierten un número de punto flotante en los tipos de datos especificados y devuelven un valor convertido al tipo. Si corresponde, se redondea la conversión.
En el caso de una REAL_TO_<tipo de destino> conversión, el valor se convierte primero a UDINT
y solo entonces se convierte al tipo de destino.
En el caso de la LREAL_TO_<tipo de destino> conversión, el valor se convierte primero a ULINT
y solo entonces se convierte al tipo de destino.
Sintaxis de llamada: REAL_TO_<tipo de destino>(<operando>), LREAL_TO_<tipo de destino>(<operando>)
Operando | Tipo | Descripción |
---|---|---|
Variable o literal |
|
REAL/LREAL_TO_<target type>
Operador: REAL | Operador: LREAL | Ejemplo | Valor de retorno | |
---|---|---|---|---|
|
| 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) |
| Internamente, primero se lanza a |
|
| LREAL_TO_DT(0.987654321) |
| Tipo de datos de destino: |
|
| REAL_TO_LINT(1.234) |
| |
|
| |||
| - | REAL_TO_LREAL(1.234) |
| |
|
| Internamente, primero se lanza a | ||
|
| |||
- |
| |||
|
| |||
|
| REAL_TO_STRING(1.234) |
| |
|
| REAL_TO_TIME(1.234) |
| Internamente, primero se convierte a ULINT y luego se devuelve el valor en ms. |
|
| REAL_TO_TOD(1.234) |
| Internamente, primero se convierte a UDINT y luego el valor se devuelve como TOD. Sintaxis: TOD#hh:mm:ss.sss |
|
| |||
|
| |||
|
| |||
|
| |||
|
| REAL_TO_WORD(1.2345678E11) |
| |
|
| REAL_TO_WSTRING(1.23456789E11) |
|
Redondeo
Al convertir a un entero, el operando se redondea hacia arriba o hacia abajo hasta un valor entero. Para los números del 1 al 4 después del punto decimal, el número se redondea hacia abajo. Para los números del 5 al 9, el número se redondea hacia arriba. Luego, el número redondeado se convierte al tipo entero especificado. Si el valor redondeado está fuera del rango de valores enteros, se devuelve un valor indefinido que depende del sistema de destino. En ese caso, también es posible que se produzca un error de excepción.
Convertir a cadena
Para una conversión de un número de punto flotante a una cadena, la cantidad de decimales de la mantisa está limitada a 6. Si el número es < 1, entonces la mantisa es 1 <= m < 10
. Si la mantisa tiene más dígitos después de la coma, se redondea al sexto dígito y luego se convierte.
También es posible que la variable de cadena se declare demasiado corta para el valor de retorno. En este caso, la cadena de retorno se trunca a la derecha.
