Como criar objetos BigDecimal em Java
Para criar um BigDecimal objeto em Java, você chamar um dos construtores que você vê abaixo. Cada um desses construtores tem um valor e converte-lo para um BigDecimal objeto.
Embora você possa criar BigDecimal valores a partir de um duplo ou flutuador valor, e não é recomendado. O ponto inteiro de usar BigDecimal é o de evitar os erros de precisão com que são inerentes duplo e flutuador valores, ea única maneira de fazer isso é evitar o uso duplo e flutuador completamente. Como diz o velho ditado computador lembra, "Garbage in, garbage out".
Construtor | Explicação |
---|---|
BigDecimal (double val) | cria um BigDecimal a partir do valor duplo. |
BigDecimal (float val) | cria um BigDecimal a partir do valor float. |
BigDecimal (val int) | cria um BigDecimal a partir do valor int. |
BigDecimal (long val) | cria um BigDecimal do valor longo. |
BigDecimal (String val) | cria um BigDecimal a partir do valor de cadeia. A cadeia deve conter um validrepresentation de um número decimal. |
Tome estas declarações, por exemplo:
valor BigDecimal = new BigDecimal (0,01) -System.out.println (valor) -
Aqui está o que será impresso no console:
0,01000000000000000020816681711721685132943093776702880859375
A melhor maneira de criar uma BigDecimal objeto com um valor decimal inicial é através de uma corda, como esta:
valor BigDecimal = new BigDecimal ( "0,01") -
Aqui, valor tem um valor de exatamente 0,01.
Se o valor inicial é um número inteiro, você pode passá-lo com segurança para o construtor. Lembre-se que números inteiros não têm os mesmos problemas de precisão que dupla e flutuadores Faz. Além disso, você pode converter um BigDecimal para uma duplo unicamente com a finalidade de utilizar o NumberFormat classe para formatar o resultado. Contanto que você não use o duplo em todos os cálculos, você não terá que se preocupar com imprecisões de ponto flutuante.
Nota: o BigDecimal classe tem nenhum construtor padrão porque você não pode ter um BigDecimal objeto sem um valor.