Manipulando BigDecimal

Publicado por Robson Fernando Gomes em 21/05/2012

[ Hits: 25.396 ]

Blog: http://maguscode.blogspot.com/

 


Manipulando BigDecimal



Introdução

Um problema que encontrei quando comecei a utilizar BigDecimal, foi exatamente o fato de conseguir manipular os números quando utiliza esta tipagem.

Abaixo, explico de maneira simples como manipular valores em BigDecimal. Vale salientar que x e y são valores do tipo BigDecimal.

Arredondamento de Casas Decimais

Para realizar o arredondamento, utilizaremos o método: x.setScale(int,int)

Onde o primeiro parâmetro é a quantidade de casas decimais e a segundo, o tipo de arrendamento.

- Código utilizado:

package com.blogspot.maguscode; import java.math.BigDecimal; import java.math.RoundingMode; public class TesteBigDecimal { public static void main(String args[]) { BigDecimal numero = new BigDecimal(20.005); //Especificar arredondamento de casas decimais System.out.println("Visualização do número(20.005) arredondado(duas casas decimais):"); //Só será arrendodado para o número maior se a difernça for maior que 0.5 System.out.println("(Arredondamento para baixo): "+numero.setScale(2,RoundingMode.DOWN)); //Só será arrendodado para o número maior se a diferença for maior ou igual a 0.5 System.out.println("(Arredondamento para cima): "+numero.setScale(2,RoundingMode.UP)); } }


  • No primeiro caso, o número é arredondado para cima, ou seja, o número 20.005 passa a ser 20.01.
  • No segundo caso, o número é arredondado para baixo, ou seja, o número 20.005 passa a ser 20.00.

Operações de Comparação

Para fazer operações de comparação, não é possível usar (>,<,==), como no caso dos números primitivos (int,double,float,long) é necessário utilizar a anotação: x.compareTo(y)

Por padrão, o retorno desta função será:
-1 - para x menor que y
0 - para x igual a y
1 - para x maior que y

Abaixo, é possível visualizar alguns exemplos:

- Código utilizado:

package com.blogspot.maguscode; import java.math.BigDecimal; public class TesteBigDecimal { public static void main(String args[]) { BigDecimal numero = new BigDecimal(20.005); int valorRetorno; //Repostas x.compareTo(y): //1 x maior que y //0 x igual a y //-1 x menor que y System.out.println("\n\n"); System.out.println("Comparações"); valorRetorno = numero.compareTo(new BigDecimal(20.001)); System.out.println("Caso 1 (MaiorQue): " + valorRetorno); valorRetorno = numero.compareTo(new BigDecimal(20.006)); System.out.println("Caso 1 (MenorQue): " + valorRetorno); valorRetorno = numero.compareTo(numero); System.out.println("Caso 1 (Igual):" + valorRetorno); } }


Operações Matemáticas Simples

Quando se utiliza números do tipo BigDecimal, não é possível realizar operações básicas entre eles como se fossem números primitivos, para resolver tal problema, é necessário utilizar:
  • x.substrac(y) equivale a x-y
  • x.add(y) equivale a x+y
  • x.div(y) equivale a x/y
  • x.mult(y) equivale a x*y
- Código utilizado:

package com.blogspot.maguscode; import java.math.BigDecimal; public class TesteBigDecimal { public static void main(String args[]) { System.out.println("Operações básicas:"); BigDecimal numeroParaOperacoes= new BigDecimal(20); //Operação de soma x.add(y) System.out.println("Soma: "+ numeroParaOperacoes.add(BigDecimal.TEN)); //Operação de soma x.substract(y) System.out.println("Subtração: "+numeroParaOperacoes.subtract(BigDecimal.TEN)); //Operacao de divisao x.divide(y) System.out.println("Divisão: "+numeroParaOperacoes.divide(BigDecimal.TEN)); //Opeação de multiplicação x System.out.println("Multiplicao: "+numeroParaOperacoes.multiply(BigDecimal.TEN)); } }


Dica previamente publicada em: Maguscode.Blogspot - Manipulando Bigdecimal

Outras dicas deste autor

Instalação do soapUI no Linux

Adicionar e remover informações do propertie do System no Java

Copiando um arquivo com Java

Descobrir se uma determinada tabela, sinonimo ou usuário existe no Oracle

Criar programa Java sem Eclipse e Netbeans

Leitura recomendada

Executar comandos do terminal Linux em Java

Java - Anti-aliasing de fontes em aplicações gráficas

Introdução ao Java Micro Edition (J2ME)

Adicionar e remover informações do propertie do System no Java

Visualizando applets

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts