Problema:
Você deseja arredondar um número para um número específico de casas decimais.
Exemplo:
Nosso banco de dados tem uma tabela chamada
product
com dados nas seguintes colunas:id
, name
e price_net
. id | nome | price_net |
---|---|---|
1 | pão | 2,34 |
2 | croissant | 1,22 |
3 | rolo | 0,68 |
Suponha que haja um imposto de 24% sobre cada produto e você queira calcular o preço bruto de cada item (ou seja, após impostos) e arredondar o valor para duas casas decimais.
Solução:
SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross FROM product;
Esta consulta retorna o preço bruto arredondado para duas casas decimais:
id | preço_bruto |
---|---|
1 | 2,90 |
2 | 1,51 |
3 | 0,84 |
Discussão:
Se você quiser arredondar um número de ponto flutuante para um número específico de casas decimais no SQL, use a função ROUND. O primeiro argumento desta função é a coluna cujos valores você deseja arredondar; o segundo argumento é opcional e denota o número de casas para as quais você deseja arredondar. Por padrão, se você não especificar o segundo argumento, a função arredonda para o inteiro mais próximo.
Neste exemplo, não especificaremos o número de lugares para os quais queremos arredondar a coluna:
SELECT id, ROUND(price_net*1.24) as price_gross FROM product;
E aqui está o resultado correspondente:
id | preço_bruto |
---|---|
1 | 3 |
2 | 2 |
3 | 1 |