In MariaDB, FLOOR()
è una funzione numerica incorporata che restituisce il valore intero più grande non maggiore del suo argomento.
Sintassi
La sintassi è questa:
FLOOR(X)
Dove X
è il valore a cui applicare l'operazione.
Esempio
Ecco un esempio:
SELECT FLOOR(3.6789);
Risultato:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Il passaggio di un valore negativo produce il seguente risultato:
SELECT FLOOR(-3.6789);
Risultato:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Rispetto a ROUND()
Il FLOOR()
la funzione è diversa da ROUND()
funzione. Il ROUND()
funzione arrotonda il numero per eccesso in alcuni casi e per difetto in altri. Il FLOOR()
la funzione, d'altra parte, restituisce sempre il valore intero più grande non maggiore del suo argomento.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Risultato:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Inoltre, ROUND()
ci consente di specificare il numero di cifre decimali da arrotondare a:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Risultato:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
è anche diverso da TRUNCATE()
funzione, che semplicemente tronca il numero a una determinata cifra decimale.
Argomenti non numerici
Ecco cosa succede quando forniamo un argomento non numerico:
SELECT FLOOR('Ten');
Risultato:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Controlliamo l'avviso:
SHOW WARNINGS;
Risultato:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argomenti mancanti
Chiamando FLOOR()
senza un argomento genera un errore:
SELECT FLOOR();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'