Skip to main content

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

REAL, LREAL

Tabella 13. Operatore: REAL/LREAL_TO_<target type>

Operatore: REALE

Operatore: LREAL

Esempio

Valore di ritorno

REAL_TO___UXINT

LREAL_TO___UXINT

REAL_TO___UXINT(1.234)
LREAL_TO___UXINT(0.987654321)

1

1

__UXINT, __XINT, __XWORD

REAL_TO___XINT

LREAL_TO___XINT

__UXINT, __XINT, __XWORD

REAL_TO___XWORD

LREAL_TO___XWORD

__UXINT, __XINT, __XWORD

REAL_TO_BIT

LREAL_TO_BIT

BIT

REAL_TO_BOOL

LREAL_TO_BOOL

LREAL_TO_BOOL(0.987654321)

TRUE

BOOL

REAL_TO_BYTE

LREAL_TO_BYTE

REAL_TO_BYTE(1.234)
LREAL_TO_BYTE(0.987654321)

1

Integer

REAL_TO_DATE

LREAL_TO_DATE

REAL_TO_DATE(1.234)
LREAL_TO_DATE(0.987654321)

D#1970-1-1

Tipo di dati: DATE

REAL_TO_DINT

LREAL_TO_DINT

REAL_TO_DINT(1.234)

1

Integer

REAL_TO_DT

LREAL_TO_DT

REAL_TO_DT(1.234)

D#1970-1-1-0:0:1

Tipo di dati: DATE

REAL_TO_DWORD

LREAL_TO_DWORD

REAL_TO_DWORD(1.234)

32#1

Integer

REAL_TO_INT

LREAL_TO_INT

REAL_TO_INT(-1.5)

-2

Integer

REAL_TO_LDATE

LREAL_TO_LDATE

REAL_TO_LDATE(1.234)

DT#1970-1-1

Internamente, viene prima fuso per ULINT e quindi il valore viene restituito come data.

REAL_TO_LDT

LREAL_TO_LDT

LREAL_TO_DT(0.987654321)

D#1970-1-1-0:0:1

Tipo di dati di destinazione: LDATE_AND_TIME

Tipo di dati: DATE

REAL_TO_LINT

LREAL_TO_LINT

REAL_TO_LINT(1.234)

1

Integer

REAL_TO_LTOD

LREAL_TO_LTOD

Tipo di dati: DATE

REAL_TO_LREAL

-

REAL_TO_LREAL(1.234)

1.234

REAL, LREAL

REAL_TO_LTIME

LREAL_TO_LTIME

Internamente, viene prima fuso per ULINT e quindi il valore viene restituito come in ns.

Tipi di dati temporali

REAL_TO_LWORD

LREAL_TO_LWORD

Integer

-

LREAL_TO_REAL

REAL_TO_SINT

LREAL_TO_SINT

Integer

REAL_TO_STRING

LREAL_TO_STRING

REAL_TO_STRING(1.234)

'1.234'

STRING

REAL_TO_TIME

LREAL_TO_TIME

REAL_TO_TIME(1.234)

T#1ms

Internamente, viene prima convertito in ULINT e poi il valore viene restituito in ms.

Tipi di dati temporali

REAL_TO_TOD

LREAL_TO_TOD

REAL_TO_TOD(1.234)

TOD#0:0:0.001

Internamente, viene prima convertito in UDINT e poi il valore viene restituito come TOD.

Sintassi: TOD#hh:mm:ss.sss

Tipo di dati: DATE

REAL_TO_UDINT

LREAL_TO_UDINT

Integer

REAL_TO_UINT

LREAL_TO_UINT

Integer

REAL_TO_ULINT

LREAL_TO_ULINT

Integer

REAL_TO_USINT

LREAL_TO_USINT

Integer

REAL_TO__WORD

LREAL_TO__WORD

REAL_TO_WORD(1.2345678E11)

1

Integer

REAL_TO_WSTRING

LREAL_TO_WSTRING

REAL_TO_WSTRING(1.23456789E11)

"1.234"

WSTRING



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.

Esempio 170. Esempio
_cds_img_fbd_convert_real_to_string.png