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 |