Como fazer aritmética bigdecimal para java
Video: Classe BigDecimal
Conteúdo
A pior parte sobre o uso do BigDecimal classe em Java é que você não pode usar operadores aritméticos normais com BigDecimal objetos. BigDecimal aritmética tem rules.T diferente ele seguinte código, por exemplo, não irá compilar:
BigDecimal subtotal, TaxRate, imposto, o total-subtotal = new BigDecimal ("32.50") = -taxRate novo BigDecimal ("0,05") -Imposto = subtotal * taxRate- // erro: não vai compiletotal = subtotal + impostos // isso não vai compilar quer
Em vez disso, você tem que chamar métodos da BigDecimal classe para efectuar operações aritméticas básicas. Todos esses métodos retornam o resultado do cálculo como BigDecimal objetos. Veja como você pode executar o cálculo do imposto anterior:
Video: Aula 13 – Campo Formatado Moeda com tipo BigDecimal
BigDecimal subtotal, TaxRate, imposto, o total-subtotal = new BigDecimal ("32.50") = -taxRate novo BigDecimal ("0,05") -Imposto = subTotal.multiply (TaxRate) -total = subTotal.add (imposto) -
Aqui está uma lista de todos os métodos aritméticos para o BigDecimal classe. Como você pode ver, a classe tem métodos para operações básicas como adicionar, subtrair, multiplicar, e dividir, bem como algumas operações adicionais, tais como abs (poder absoluto), prisioneiro de guerra (Aumentando o número a uma potência), e negativo (Muda o sinal do número).
Video: Curso de Java - Aula 52 - Média Aritmética - eXcript
Método | Explicação |
---|---|
BigDecimal abs () | Retorna o valor absoluto deste BigDecimal. |
BigDecimal adicionar | Adiciona o especificado BigDecimal para isso BigDecimal e retorna o resultado. |
BigDecimal divide (BigDecimal val) | divide esta BigDecimal pela Especificadas BigDecimal e retorna o resultado. O método pode lançar ArithmeticException. |
BigDecimal [] divideAndRemainder (BigDecimal val) | divide esta BigDecimal pelo Especificadas BigDecimaeu. O resultado ea restante é devolvido como um elemento de duas- BigDecimal matriz. |
BigDecimal [] divideToIntegralValue (BigDecimal val) | divide esta BigDecimal pelo Especificadas BigDecimal e retorna o resultado inteiro. |
BigDecimal max (BigDecimal Val) | Retorna o maior desta BigDecimal e o especificado BigDecimal. |
BigDecimal min (BigDecimal Val) | Retorna o menor deste BigDecimal e o especificado BigDecimal. |
BigDecimal multiplicar (BigDecimal val) | multiplica isso BigDecimal pelo Especificadas BigDecimal e retorna o resultado. |
BigDecimal anular () | nega esta BigDecimal e retornos o resultado. |
BigDecimal POW (poder int) | eleva este BigDecimal para o poder especificado pela int valor e retornos o resultado. |
restante BigDecimal (BigDecimal val) | divide esta BigDecimal pelo Especificadas BigDecimal e retorna o restante. |
BigDecimal subtrair (BigDecimal val) | Subtrai o especificado BigDecimal disto BigDecimal e retorna o resultado. |
Observe que, além de divisão normal, você pode usar o divideToIntegralValue método para voltar a parte inteira do resultado. Aqui está um exemplo:
BigDecimal a = new BigDecimal ("23,5") -BigDecimal b = novo BigDecimal ("7") -BigDecimal c-c = a.divideToIntegralValue (b) -
Após estas declarações executar, o valor de c é 3.
Você também pode usar o restante método para obter o restante de uma divisão:
c = a.remainder (b) -
Aqui o valor de c é 2,5.
Um erro comum entre os novos usuários do BigDecimal classe é esquecer de atribuir o resultado de uma operação aritmética. Você pode olhar para este ciclo de código por horas, perguntando por que ele não parece funcionar:
BigDecimal totalWinnings = new BigDecimal ("1000.00") -BigDecimal winningsThisGame = novo BigDecimal ("200,00") -totalWinnings.add (winningsThisGame) -System.out.println (totalWinnings) -
A terceira declaração acrescenta winningsThisGame para ganhos totais mas descarta o resultado. O que você provavelmente quis dizer foi o seguinte:
Video: Converter Número Binário para Decimal em Java - Canal do Código
totalWinnings = totalWinnings.add (winningsThisGame) -