Conversione: REALE, LREAL
Importante
Se il numero in virgola mobile rientra nell'intervallo di valori del tipo di dati di destinazione, la conversione funziona allo stesso modo su tutti i sistemi.
Se il numero in virgola mobile supera il limite dell'intervallo, i primi byte del numero non vengono presi in considerazione.
Gli operatori convertono un numero in virgola mobile nei tipi di dati specificati e restituiscono un valore convertito in base al tipo. Se applicabile, la conversione viene arrotondata.
Nel caso di un REAL_TO_<tipo di destinazione> conversione, il valore viene prima convertito in UDINT
e solo allora lanciare sul tipo bersaglio.
Nel caso del LREAL_TO_<tipo di destinazione> conversione, il valore viene prima convertito in ULINT
e solo allora lanciare sul tipo bersaglio.
Sintassi della chiamata: REAL_TO_<tipo di destinazione>(<operando>), LREAL_TO_<tipo di destinazione>(<operando>)
Operando | Tipo | Descrizione |
---|---|---|
Variabile o letterale |
|
REAL/LREAL_TO_<target type>
Operatore: REALE | Operatore: LREAL | Esempio | Valore di ritorno | |
---|---|---|---|---|
|
| 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, viene prima fuso per |
|
| LREAL_TO_DT(0.987654321) |
| Tipo di dati di destinazione: |
|
| REAL_TO_LINT(1.234) |
| |
|
| |||
| - | REAL_TO_LREAL(1.234) |
| |
|
| Internamente, viene prima fuso per | ||
|
| |||
- |
| |||
|
| |||
|
| REAL_TO_STRING(1.234) |
| |
|
| REAL_TO_TIME(1.234) |
| Internamente, viene prima convertito in ULINT e poi il valore viene restituito in ms. |
|
| REAL_TO_TOD(1.234) |
| Internamente, viene prima convertito in UDINT e poi il valore viene restituito come TOD. Sintassi: TOD#hh:mm:ss.sss |
|
| |||
|
| |||
|
| |||
|
| |||
|
| REAL_TO_WORD(1.2345678E11) |
| |
|
| REAL_TO_WSTRING(1.23456789E11) |
|
Arrotondamento
Quando si converte in un numero intero, l'operando viene arrotondato per eccesso o per difetto a un valore intero. Da 1 a 4 dopo la virgola decimale, il numero viene arrotondato per difetto. Da 5 a 9, il numero viene arrotondato per eccesso. Quindi il numero arrotondato viene convertito nel tipo intero specificato. Se il valore arrotondato non rientra nell'intervallo di valori interi, viene restituito un valore non definito, dipendente dal sistema di destinazione. In tal caso è possibile anche un errore di eccezione.
Conversione in una stringa
Per una conversione di un numero a virgola mobile in una stringa, il numero di posizioni decimali della mantissa è limitato a 6. Se il numero è < 1, la mantissa è 1 <= m < 10
. Se la mantissa ha più cifre dopo la virgola, viene arrotondata alla sesta cifra e quindi convertita.
La variabile stringa può anche essere dichiarata troppo corta per il valore restituito. In questo caso, la stringa di ritorno viene troncata a destra.
