Ao fazer uso da classe Big­De­ci­mal em Java, você será capaz de processar complexos números de ponto flutuante com total exatidão em seus códigos. De sintaxe simples e pa­dro­ni­zada, ela pode ser usada até mesmo por pro­gra­ma­do­res ini­ci­an­tes, em operações arit­mé­ti­cas que exigem alta precisão. Aplique a classe Java Big­De­ci­mal a di­fe­ren­tes métodos de cálculo para ampliar suas pos­si­bi­li­da­des.

O que é Java Big­De­ci­mal?

A classe Big­De­ci­mal em Java permite que números de ponto flutuante complexos, de tamanho te­o­ri­ca­mente ilimitado, sejam re­pre­sen­ta­dos e pro­ces­sa­dos com total precisão. Ao ser combinada a di­fe­ren­tes métodos, ela permite a re­a­li­za­ção de operações de ar­re­don­da­mento, arit­mé­ti­cas, de conversão de formato, de hashing e com­pa­ra­ções avançadas — tudo isso com a máxima exatidão.

Java Big­De­ci­mal é composta por dois elementos: uma escala de 32 bits e um valor inteiro sem escala com precisão ar­bi­trá­ria. Aqui, “escala” diz respeito ao inteiro que re­pre­senta o número de casas decimais à direita do ponto decimal, desde que maior ou igual a zero — se for menor que zero, o valor é mul­ti­pli­cado por 10^(-scale). Ela, portanto, controla a precisão decimal do res­pec­tivo número. Em teoria, o tamanho de uma classe Big­De­ci­mal em Java será sempre limitado pela memória do com­pu­ta­dor. A pos­si­bi­li­dade é, contudo, bastante remota, uma vez que é im­pro­vá­vel que um código crie um número capaz de ex­tra­po­lar a ca­pa­ci­dade de um dis­po­si­tivo. Im­por­tante ressaltar também que a classe Java Big­De­ci­mal foi es­pe­ci­al­mente projetada para lidar com números de ponto flutuante. Para processar números inteiros, você deverá utilizar a classe Bi­gIn­te­ger em Java.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

Para que serve a classe Java Big­De­ci­mal?

Devido à extrema precisão dela, a classe Big­De­ci­mal em Java pode não ser in­te­res­sante para grande parte das situações. Contudo, ela é muito bem quista em campos de aplicação es­pe­cí­fi­cos, como, por exemplo, em tran­sa­ções de e-commerce, em que até mesmo a menor casa decimal causa algum tipo de impacto nos cálculos. Java Big­De­ci­mal também costuma ser usada em análises estáticas precisas. Ainda, programas de controle de navegação de aviões e foguetes dependem da aplicação dessa classe, assim como di­fe­ren­tes áreas da medicina. Muitos outros campos, não es­pe­ci­fi­ca­dos aqui, também podem se be­ne­fi­ciar dessa classe em Java, por ser capaz de apre­sen­tar re­sul­ta­dos com os maiores índices de exatidão.

Como criar um objeto na classe Java Big­De­ci­mal?

Para que você consiga aplicar a classe Big­De­ci­mal em Java, pri­mei­ra­mente deverá importar essa classe para Java. Depois de concluir esse passo, você poderá declarar um objeto dessa classe, criar o valor desejado como argumento e transmiti-lo ao cons­tru­tor Java da sua pre­fe­rên­cia. Somente depois de realizar todo esse pro­ce­di­mento, você será capaz de fazer uso da classe Java Big­De­ci­mal no seu código. Ela suporta di­fe­ren­tes métodos, que serão apre­sen­ta­dos e ex­pli­ca­dos mais à frente.

Como já orientado, comece, antes de tudo, im­por­tando a classe Java Big­De­ci­mal e de­cla­rando seus objetos. Abaixo, de­cla­ra­mos dois objetos de exemplo:

/ / O seu programa Java para a classe BigDecimal:
import java.math.BigDecimal;
public class BigDecimalExemplo
{
	public static void main(String[] args)
	{
		/ / Criar dois novos BigDecimal:
		BigDecimal ExemploUm =
			new BigDecimal ("1275936001.744297361");
		BigDecimal ExemploDois =
			new BigDecimal ("4746691047.132719503");
	}
}
java

A partir daqui, já podemos usar esses objetos em conjunto com os métodos su­por­ta­dos pela classe.

Exemplos de aplicação de Java Big­De­ci­mal

Depois de criar os devidos objetos, você poderá combiná-los a di­fe­ren­tes métodos para a re­a­li­za­ção de operações. Nos próximos pa­rá­gra­fos, apre­sen­ta­re­mos alguns exemplos simples que fazem uso da classe Big­De­ci­mal em Java e exi­bi­re­mos os re­sul­ta­dos obtidos. Para re­a­li­zar­mos essas ações, uti­li­za­re­mos também o comando Java System.out.println().

Somar valores

Quando você quiser somar duas classes Big­De­ci­mal em Java, considere usar o método add(). Antes, você deverá fornecer os dois valores que deseja somar. No nosso exemplo, co­man­da­mos que o valor “ExemploUm” seja somado ao valor “Exem­plo­Dois”. A ação é executada da seguinte forma:

ExemploUm =
ExemploUm.add(ExemploDois);
System.out.println ("O resultado desejado após a adição é: " + ExemploUm);
java

Subtrair valores

Para subtrair dois valores, faça uso do do método subtract() com a classe Java Big­De­ci­mal. No próximo exemplo, di­mi­nui­re­mos “ExemploUm” de “Exem­plo­Dois”, es­cre­vendo o seguinte código:

ExemploUm =
ExemploUm.subtract(ExemploDois);
System.out.println ("O resultado desejado após a subtração é: " + ExemploUm - ExemploDois);
java

Mul­ti­pli­car valores

O método para a re­a­li­za­ção de uma mul­ti­pli­ca­ção entre duas classes Java Big­De­ci­mal funciona da mesma forma que os já apre­sen­ta­dos. Digite multiply() e utilize o objeto mul­ti­plier como argumento. Para mul­ti­pli­car­mos “Exem­plo­Dois” por “ExemploUm”, uti­li­za­mos o seguinte código:

ExemploUm =
ExemploUm.multiply(ExemploDois);
System.out.println ("O resultado desejado após a multiplicação é: " + ExemploUm);
java

Dividir valores

Se você tiver de dividir duas classes Big­De­ci­mal em Java, faça uso do método divide(). Ba­si­ca­mente, ele também segue a mesma sintaxe dos demais cálculos, tendo ela a seguinte aparência:

ExemploUm =
ExemploUm.divide(ExemploDois);
System.out.println ("O resultado esperado após a divisão é: " + ExemploUm);
java

Atente-se ao fato de que esse tipo de operação só fun­ci­o­nará se o resultado vir a ser exato ou um número inteiro. Não sendo esse o caso, a seguinte mensagem de erro será exibida após a execução do seu código:

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
java

A mensagem de erro acima aponta um erro de tempo de execução. Para evitá-lo, você poderá usar uma das várias opções de ar­re­don­da­mento su­por­ta­das pelo método divide(). Faça isso por meio de java.math.RoundingMode em com­bi­na­ção com uma das seguintes cons­tan­tes:

Constante Função
CEILING Arredonda para cima (em direção ao infinito positivo).
DOWN Arredonda para 0.
FLOOR Arredonda para baixo (em direção ao infinito negativo).
HALF_DOWN Arredonda para o número mais próximo e oposto ao zero, se ambos estiverem igual­mente distantes.
HALF_EVEN Arredonda para o número mais próximo e para o número par mais próximo, se ambos estiverem igual­mente distantes.
HALF_UP Arredonda para o número mais próximo e em direção a 0, se ambos estiverem igual­mente distantes.
UNNECESSARY Dispensa o ar­re­don­da­mento e realiza operações ex­clu­si­va­mente exatas; essa constante só pode ser usada quando a divisão é exata.
UP Arredonda para um número distante de 0.

Prin­ci­pais métodos de Java Big­De­ci­mal

Para que você possa se be­ne­fi­ciar ainda mais dos cálculos re­a­li­za­dos pela classe Java Big­De­ci­mal, listamos aqui os prin­ci­pais métodos que podem ser as­so­ci­a­dos a ela, assim como a função que cada um executa:

Método Função
abs() Big­De­ci­mal com o valor absoluto deste Big­De­ci­mal.
add() Retorna um Big­De­ci­mal com o valor re­sul­tante de (this + adendo).
divide() O valor re­sul­tante é de­ter­mi­nado por (this / divisor).
max(BigDecimal val) Retorna o valor máximo deste Big­De­ci­mal.
min(BigDecimal val) Retorna o valor mínimo deste Big­De­ci­mal.
movePointLeft(int n) Retorna um Big­De­ci­mal com a vírgula decimal movida para a esquerda em “n” casas.
movePointRight(int n) Retorna um Big­De­ci­mal com a vírgula decimal movida para a direita em “n” casas.
multiply(BigDecimal multiplicand, MathContext mc) Retorna um valor que resulta de (this * mul­ti­pli­ca­dor).
Dica

Aprenda mais sobre a linguagem de pro­gra­ma­ção Java, uma das mais populares e uti­li­za­das no mundo. Artigos es­pe­ci­a­li­za­dos do nosso Digital Guide apre­sen­tam a você os prin­ci­pais ope­ra­do­res Java, assim como explicam as cruciais di­fe­ren­ças entre Java e Ja­vaS­cript e entre Java e Python.

Ir para o menu principal