Quero fazer algumas somas simples com alguns valores de moeda expressos em BigDecimal
tipo.
BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);
Obviamente, eu não entendo bem a BigDecimal
aritmética, veja a saída por trás.
Test
0
0
0
Alguém pode me ajudar?
java
bigdecimal
Sergio del Amo
fonte
fonte
add(..)
: "augend - value a ser adicionado a este BigDecimal.". Além disso, dizer "... retorna um novo BigDecimal ..." em vez de "... retorna um BigDecimal ..." seria um toque agradável. Talvez eu só estou criticando, mas IMHO há espaço para melhorias aqui :-)Parece que, a partir dos documentos Java aqui, add adiciona um novo BigDecimal:
fonte
fonte
Na verdade, é bastante fácil. Apenas faça o seguinte:
Veja também:
BigDecimal#add(java.math.BigDecimal)
fonte
BigInteger é imutável, você precisa fazer isso,
fonte
fonte
20
fonte
Você também pode fazer assim:
Impressões:
fonte
Usando Java8 lambdas
Isso abrange os casos em que alguns ou todos os objetos da lista são nulos.
fonte
É imutável porque ele armazena internamente sua entrada, ou seja, (15)
final private final BigInteger intVal;
e o mesmo conceito de uso no momento da criação da string, cada entrada finalmente armazenaprivate final char value[];
. Portanto, não há bug implementado.fonte
Apenas outro exemplo para adicionar
BigDecimals
. O ponto principal é que eles são imutáveis e podem ser inicializados apenas no construtor. Aqui está o código:fonte