Vai all indice del manuale di programmazione
Tipo:
Funzione
Libreria LogicLab:
eLLabMathsLib
Libreria Codesys:
Non disponibile
Quando si opera con numeri float si utilizza sempre nei calcoli la massima risoluzione possibile, ecco perchè nel set di funzioni disponibili non esiste una funzione per l’arrotondamento dei numeri. Il valore viene troncato solo in visualizzazione per migliorarne la leggibilità, le funzioni SysVfprintf e SysVsnprintf permettono di definire quante cifre visualizzare (Segnaposti del formato printf).
Funzioni CEIL e FLOOR
In LogicLab esistono le funzioni CEIL e FLOOR per arrotondare un numero float ad numero intero più vicino.
- La funzione CEIL (Dalla parola inglese ceiling che significa “soffitto”) ritorna il numero intero maggiore o uguale al numero reale. Viene utilizzata per arrotondare un numero fino al numero intero precedente.
- La funzione FLOOR (Dalla parola inglese floor che significa “pavimento”) ritorna il numero intero minore o uguale al numero reale. Viene utilizzata per arrotondare un numero fino al numero intero successivo.
Esempi
RVar:=CEIL(1.95); //RVar=2.0 RVar:=CEIL(-1.27); //RVar-1.0 RVar:=FLOOR(1.95); //RVar=1.0 RVar:=FLOOR(-1.27); //RVar-2.0
Descrizione
Number (REAL) Numero da arrotondare.
Digits (USINT) Numero cifre dopo la virgola.
La funzione ritorna un REAL.

Esempi
Come utilizzare gli esempi.
Nell’esempio sono eseguiti alcuni arrotondamenti.
LogicLab (Ptp179, ST_eRound)
PROGRAM ST_eRound
VAR
RVar : ARRAY[0..5] OF REAL; (* Rounded variable *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_eRound"
// *****************************************************************************
// Executes some roundings.
// -----------------------------------------------------------------------------
RVar[0]:=eRound(12.1234, 0); //RVar=12.0
RVar[1]:=eRound(12.1234, 1); //RVar=12.1
RVar[2]:=eRound(12.1234, 2); //RVar=12.12
RVar[3]:=eRound(-12.1234, 0); //RVar=-12.0
RVar[4]:=eRound(-12.1234, 1); //RVar=-12.1
RVar[5]:=eRound(-12.1234, 2); //RVar=-12.12
// [End of file]