No MySQL, o
ROUND()
A função permite arredondar um número para cima ou para baixo para um determinado número de casas decimais. A maneira como funciona é que você fornece o número como um argumento e tem a opção de escolher para quantas casas decimais arredondar o número. Se você não especificar o número de casas decimais, o resultado não terá casas decimais.
Sintaxe
Esta função pode ser usada de uma das seguintes maneiras:
ROUND(X) ROUND(X,D)
Onde
X
é o número e D
é o número de casas decimais para as quais você deseja arredondar. Se você omitir D
, o número será arredondado para zero casas decimais. Além disso,
D
pode ser negativo. Isso resulta em D
dígitos à esquerda do ponto decimal do valor X
para se tornar zero. Exemplo 1 – Usando um argumento
Aqui está um exemplo básico para demonstrar o que acontece quando não fornecemos um segundo argumento.
SELECT ROUND(1.49) Result;
Resultado:
+--------+ | Result | +--------+ | 1 | +--------+
Nesse caso, o número é arredondado para o inteiro mais próximo.
Se aumentarmos a parte fracionária, eis o que acontece:
SELECT ROUND(1.50) Result;
Resultado:
+--------+ | Result | +--------+ | 2 | +--------+
Nesse caso, o número é arredondado para cima.
Exemplo 2 – Usando dois argumentos
Veja como podemos usar um segundo argumento para especificar as casas decimais para arredondar o número.
SELECT ROUND(1.234, 2) Result;
Resultado:
+--------+ | Result | +--------+ | 1.23 | +--------+
E aqui está o que acontece quando eu aumento o último dígito para 5:
SELECT ROUND(1.235, 2) Result;
Resultado:
+--------+ | Result | +--------+ | 1.24 | +--------+
Claro, poderíamos usar muito mais casas decimais. Por exemplo, poderíamos reduzir muitas casas decimais.
SELECT ROUND(1.23456789123456789, 8) Result;
Resultado:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Ou podemos aumentar o número de casas decimais.
SELECT ROUND(1.234, 8) Result;
Resultado:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Exemplo 3 – Usando um valor negativo para o segundo argumento
Veja como podemos usar um valor negativo no segundo argumento para fazer com que partes da parte não fracionária sejam arredondadas para zero.
SELECT ROUND(123.456, -1) Result;
Resultado:
+--------+ | Result | +--------+ | 120 | +--------+
E aqui está como ele fica arredondado se aumentarmos o
3
para 5
ou mais. SELECT ROUND(125.456, -1) Result;
Resultado:
+--------+ | Result | +--------+ | 130 | +--------+
Exemplo 4 – Arredondamento de números negativos x números positivos
Conforme visto nos exemplos anteriores, ao usar números positivos, um valor com uma parte fracionária de 0,5 ou maior é arredondado para o próximo inteiro.
No entanto, ao usar números negativos, esses valores são arredondados para baixo .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Resultado:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Arredondamento de números de valor aproximado
A regra de arredondamento acima se aplica apenas a números de valor exato. Para números de valor aproximado, o resultado depende da biblioteca C. A documentação do MySQL afirma isso sobre números de valor aproximado:
Em muitos sistemas, isso significa queROUND()
usa a regra “arredondar para o par mais próximo”:Um valor com uma parte fracionária exatamente na metade entre dois inteiros é arredondado para o inteiro par mais próximo.
E aqui está o exemplo usado nessa página:
SELECT ROUND(2.5), ROUND(25E-1);
Resultado:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+