Passa al contenuto principale

eRound, arrotonda i digits di un numero

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​

Immagine F eRound

ParametroTipoDescrizione
NumberREALNumero da arrotondare.
DigitsUSINTNumero cifre dopo la virgola.
OutREALLa 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]