O exemplo neste artigo descreve o uso simples da classe BigDecimal em Java. É uma habilidade muito prática em programação Java e é compartilhada com todos para sua referência. A análise de uso específica é a seguinte:
De modo geral, quando se trata de cálculos de negócios em Java, todos sabemos que float e double não podem ser usados porque não podem realizar cálculos precisos. No entanto, os projetistas de Java fornecem aos programadores uma classe BigDecimal muito útil, que pode melhorar as deficiências das classes float e double que não conseguem realizar cálculos precisos. A classe BigDecimal está localizada no pacote de classe java.maths. Primeiro, vamos ver como construir um objeto BigDecimal. Ele tem muitos construtores. Aqui estão os dois mais comumente usados para demonstrar: um é BigDecimal(double val) e o outro é BigDecimal(String str). Não parece haver muita diferença entre os dois, mas como diz a descrição da API:
/*Os resultados deste construtor podem ser um tanto imprevisíveis. Pode-se supor que new BigDecimal(.1) seja exatamente igual a .1, mas na verdade é igual a .100000000000000055511151231257827021181583404541015625. duplo (ou, para isso importa, como uma fração binária de qualquer comprimento finito). Assim, o valor longo que está sendo passado para o construtor não é exatamente igual a 0,1, apesar das aparências. O construtor (String), por outro lado, é perfeitamente previsível. : new BigDecimal(".1") é exatamente igual a .1, como seria de esperar. Portanto, geralmente é recomendado que o construtor (String) seja usado em preferência a este.*/.Ou seja, um construtor que usa double como parâmetro não pode construir com precisão um objeto BigDecimal. Você precisa especificar um ambiente de contexto, ou seja, especificar o bit preciso. O construtor que usa um objeto String como parâmetro pode construir com precisão um objeto BigDecimal. Por favor, veja o código abaixo:
import java.math.*;public class TestBigDecimal { public static void main(String args[]){ BigDecimal bd = new BigDecimal("10.123"); "/n"+ bd1); }}Saída após execução:
10.123
10.122999999999993320898283855058252811431884765625
Portanto, quando escolhemos um construtor, depende das necessidades específicas.
Além disso, muitas pessoas perguntarão como converter tipos básicos, como objetos int, float, double, long e BigDecimal entre si. Muito simples:
Os tipos básicos são convertidos em objetos BigDecimal correspondentes por meio de construtores, e a classe BigDecimal fornece métodos como intValue(), floatValue(), doubleValue() e longValue() para converter objetos BigDecimal em valores correspondentes.
Em relação a como o BigDecimal é calculado, tomei como exemplo a postagem de uma pessoa no fórum para escrever brevemente o método de cálculo do BigDecimal. O assunto é: Li Bai caminhava pela rua sem incidentes, carregando uma panela para comprar vinho. Quando você encontra uma loja, você dobra a quantidade, quando vê flores, você bebe um dou. Quando você encontra flores e uma loja, você bebe todo o vinho do pote. Quantos dou de vinho tem no pote de Li Bai. ?
Esta questão deve ser empurrada de trás para frente, e o cálculo deve ser invertido, e finalmente o volume do vinho original pode ser obtido.
import java.math.*;public class Libai { public static void main(String args[]){ BigDecimal volume = new BigDecimal("0"); .add(new BigDecimal("1")); System.out.print(volume);Resultados em execução:
0,96875
Espero que o que este artigo descreve seja útil para o aprendizado de programação Java para todos.