MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como ROUND() funciona no MariaDB


No MariaDB, ROUND() é uma função numérica interna que arredonda seu argumento para um determinado número de casas decimais.

Sintaxe


A função pode ser usada das duas maneiras a seguir:
ROUND(X)
ROUND(X,D)

Onde X é o valor a ser arredondado e D é um argumento opcional que especifica o número de casas decimais para arredondar.

Exemplo


Aqui está um exemplo:
SELECT ROUND(7.5);

Resultado:
+------------+
| ROUND(7.5) |
+------------+
|          8 |
+------------+

Passar um valor negativo produz o seguinte resultado:
SELECT ROUND(-7.5);

Resultado:
+-------------+
| ROUND(-7.5) |
+-------------+
|          -8 |
+-------------+

Especificar casas decimais


Por padrão, o ROUND() função arredonda o valor para zero casas decimais. Podemos especificar o número de casas decimais para arredondar o valor passando um segundo argumento.

Exemplo:
SELECT ROUND(7.5164, 2);

Resultado:
+------------------+
| ROUND(7.5164, 2) |
+------------------+
|             7.52 |
+------------------+

Casas decimais negativas


O segundo argumento pode ser um valor negativo, se necessário. Passar um valor negativo faz com que os dígitos fiquem à esquerda da casa decimal para se tornar zero.

Exemplo:
SELECT ROUND(3724.51, -2);

Resultado:
+--------------------+
| ROUND(3724.51, -2) |
+--------------------+
|               3700 |
+--------------------+

Comparado com FLOOR()


O ROUND() função é diferente da FLOOR() função. O ROUND() função arredonda o número para cima em alguns casos e para baixo em outros. O FLOOR() A função, por outro lado, sempre retorna o maior valor inteiro não maior que seu argumento.

Aqui está uma comparação para demonstrar essa diferença:
SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Resultado:
+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Além disso, FLOOR() não aceita um segundo argumento como ROUND() faz.

ROUND() também é diferente do TRUNCATE() função, que simplesmente trunca o número para uma determinada casa decimal, sem qualquer arredondamento.

Argumentos não numéricos


Veja o que acontece quando fornecemos um argumento não numérico:
SELECT ROUND('Ten');

Resultado:
+--------------+
| ROUND('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.028 sec)

Vamos verificar o aviso:
SHOW WARNINGS;

Resultado:
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Argumentos ausentes


Chamando ROUND() sem um argumento resulta em um erro:
SELECT ROUND();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'