Cómo hacer aritmética BigDecimal de Java

La peor parte sobre el uso del BigDecimal clase en Java es que no se puede utilizar operadores aritméticos normales con BigDecimal objetos. BigDecimal aritmética tiene diferente rules.T lo siguiente código, por ejemplo, no se compilará:

BigDecimal subtotal, TaxRate, impuestos, total subtotal = new BigDecimal ("32.50") - TaxRate = new BigDecimal ("0,05") - Impuesto = subtotal * taxRate- // error: no lo hará compiletotal = subtotal + impuestos // esto no compilará cualquiera

En su lugar, usted tiene que llamar a los métodos de la BigDecimal clase para realizar operaciones aritméticas básicas. Todos estos métodos devuelven el resultado del cálculo como BigDecimal objetos. He aquí cómo usted puede realizar el cálculo del impuesto anterior:

BigDecimal subtotal, TaxRate, impuestos, total subtotal = new BigDecimal ("32.50") - TaxRate = new BigDecimal ("0,05") - Impuesto = subTotal.multiply (TaxRate) -total = subTotal.add (impuesto) -

Aquí está una lista de todos los métodos de cálculo para el BigDecimal clase. Como puede ver, la clase tiene métodos para operaciones básicas como añadir, sustraer, multiplicar, y dividir, así como algunas operaciones adicionales, tales como abdominales (poder absoluto), pow (elevando el número a una potencia), y negativo (cambia el signo del número).

ProcedimientoExplicación
BigDecimal abs ()Devuelve el valor absoluto de esta BigDecimal.
BigDecimal añadirAgrega el especificado BigDecimal a estoBigDecimal y devuelve el resultado.
BigDecimal brecha (BigDecimalval)Divide este BigDecimal por thespecified BigDecimal y vuelve ycompararlos. El método puede lanzar ArithmeticException.
BigDecimal [] divideAndRemainder (BigDecimalval)Divide este BigDecimal por thespecified BigDecimal. El resultado y theremainder se devuelven como una matriz de dos elementos BigDecimal.
BigDecimal [] divideToIntegralValue (BigDecimalval)Divide este BigDecimal por thespecified BigDecimal y devuelve theinteger resultado.
BigDecimal max (BigDecimal val)Devuelve el más grande de este BigDecimaly la especificada BigDecimal.
BigDecimal min (BigDecimal val)Devuelve el menor de este BigDecimal y el BigDecimal especificado.
BigDecimal multiplicar (BigDecimalval)Multiplica este BigDecimal por thespecified BigDecimal y vuelve ycompararlos.
BigDecimal negar ()Niega esto BigDecimal y returnsthe resultado.
BigDecimal pow (potencia int)Eleva este BigDecimal a la powerspecified por el int valor y el resultado returnsthe.
Resto BigDecimal (BigDecimalval)Divide este BigDecimal por thespecified BigDecimal y vuelve theremainder.
BigDecimal de resta (BigDecimalval)Resta el especificado BigDecimalde esto BigDecimal y vuelve ycompararlos.

Tenga en cuenta que, además de la división normal, usted puede utilizar el divideToIntegralValue método para volver la parte entera del resultado. He aquí un ejemplo:

BigDecimal a = new BigDecimal ("23.5") - BigDecimal b = new BigDecimal ("7.0") - BigDecimal cc = a.divideToIntegralValue (b) -

Después de estas sentencias se ejecutan, el valor de c es 3.

También puede utilizar el resto método para obtener el resto de una división:

c = a.remainder (b) -

Aquí el valor de c es 2.5.

Un error común entre los nuevos usuarios de la BigDecimal clase es olvidar asignar el resultado de una operación aritmética. Usted puede mirar a este bucle código de hora, preguntándose por qué no parece funcionar:

BigDecimal totalWinnings = new BigDecimal ("1,000.00") - BigDecimal winningsThisGame = new BigDecimal ("200.00") - totalWinnings.add (winningsThisGame) -System.out.println (totalWinnings) -

La tercera declaración agrega winningsThisGame a victorias totales pero descarta el resultado. Lo que probablemente quería decir era esto:

totalWinnings = totalWinnings.add (winningsThisGame) -



» » » » Cómo hacer aritmética BigDecimal de Java