UpInside Treinamentos

Aprenda como arredondar casas decimais diretamente pelo banco de dados

Confira 4 funções nativas do MariaDB para que você possa fazer o arredondamento de casas decimais diretamente pelo seu SGDB sem precisar da linguagem de programação

Aprenda como arredondar casas decimais diretamente pelo banco de dados
  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter
  • Compartilhar na UpInside

Salve salve webmaster, Gustavo Web aqui mais uma vez com um tópico bastante requisitado no assunto de banco de dados! Você sabe como fazer para arredondar casas decimais diretamente pelo banco de dados?

Como você já deve conhecer os recursos que as linguagens de programação nos oferecem para tratar com os dados, e arredondar casas decimais é bem tranquilo em praticamente toda a linguagem! Mas uma questão que passa despercebido é a possibilidade de fazer isso diretamente pelo seu SGDB sem muitas complicações.

O que você precisa saber?

Antes de botar a mão na massa é necessário que você identifique qual a sua necessidade, pois o arredondamento basicamente funciona de 4 formas diferentes. Vamos ver cada uma delas de forma mais detalhada no decorrer desse artigo.

Arredondar para cima:

Nesse formato independente do valor das casas decimais, o valor será sempre arredondado para o próximo número inteiro. Veja os exemplos abaixo da função CEILING:

SELECT CEILING(10.19)
> 11
SELECT CEILING(10.91)
> 11
SELECT CEILING(10.5)
> 11
SELECT CEILING(10.111111)
> 11

Com isso você pode notar que independente do valor e a quantidade de casas decimais, sempre será arredondado para o próximo valor.

Arredondar para baixo:

Diferente da função CEILING, a função FLOOR tem o objetivo de arredondar para baixo os valores. Saca só como que fica a aplicação da função e os retornos:

SELECT FLOOR(10.19)
> 10
SELECT FLOOR(10.91)
> 10
SELECT FLOOR(10.5)
> 10
SELECT FLOOR(10.111111)
> 10

Os valores utilizados nos exemplos são os mesmos, mas você pode fazer que em nenhuma hipotese teve como saída o valor 11 (por mais que 10.91 seja mais próximo de 11)

Arredondar por aproximidade:

Essa é uma das funções mais utilizadas para arredondar as casas decimais, pois o valor que será arredondado será sempre para o valor inteiro mais próximo da expressão. Veja como fica a aplicação da função ROUND:

SELECT ROUND(10.19)
> 10
SELECT ROUND(10.91)
> 11
SELECT ROUND(10.5)
> 11
SELECT ROUND(10.111111)
> 10

Veja que os resultados agora são alternados de acordo com a aproximação do número inteiro… Seja para cima ou para baixo.

Uma vantagem ainda do ROUND é que você tem a possibilidade de informar quantas casas decimais você deseja de aproximação. Isso é bastante útil quando você quer trbalhar com o formato moeda por exemplo, ou ainda que o seu banco do banco de dados seja do tipo DECIMAL(X, 2) ou Double Precision. Nesse caso, veja como você pode usar a função e como fica o seu retorno:

SELECT ROUND(10.1231, 3)
> 10.123
SELECT ROUND(10.1239, 3)
> 10.124

Como você pode constar, o valor .1231 é mais próximo de .123 (contando somente as 3 casas de aproximação), já o valor .1239 é mais próximo de .124.

Arredondamento por corte:

É uma maneira pouco usual de se fazer esse procedimento, e o resultado se assemelha muito a função FLOOR (arredondar para baixo). Nesse caso, estou me referindo ao TRUNCATE, que deve ser informado também a quantidade de casas decimais que você deseja na resposta, veja os exemplos:

SELECT TRUNCATE(10.19, 0)
> 10
SELECT TRUNCATE(10.19, 1)
> 10.1
SELECT TRUNCATE(10.19, 2)
> 10.19
SELECT TRUNCATE(10.19, 3)
> 10.190

Lembre-se que essa função TRUNCATE não é a mesma que utilizamos para dropar e recriar a tabela... É uma função total diferente da DDL :)

Bom galera, vou ficando por aqui com o post de hoje! Me diga aqui abaixo na área de comentários se você conhecia essas funções e se sabia como fazer isso diretamente pelo seu banco de dados. Lembre-se que essas funções podem ser usadas dentro do WHERE, numa Subquery, num CASE… Enfim! Você quem determina onde será aplicado. Aquele forte abraço e eu te vejo no próximo artigo aqui na UpInside.

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter
  • Compartilhar na UpInside

Olá, deixe seu comentário para Aprenda como arredondar casas decimais diretamente pelo banco de dados

Enviando Comentário Fechar :/