BigDecimal es un tipo de big data, cálculo más preciso
1. Inicialización
1.1 Cadena como parámetro
BigDecimal a = new BigDecimal ("1.22");
doublevalue: 1.2199999999999999733546474089962430298328399658203125
1.2 Número como parámetro
BigDecimal a = new BigDecimal (1.22);
construcción con un valor String: 1.22
Nota 1: El método de construcción String es completamente predecible: escribir newBigDecimal ("0.1") creará un BigDecimal, que es exactamente igual al 0.1 esperado. Por lo tanto, en comparación, generalmente se recomienda utilizar primero el método de construcción String.
Nota 2: Cuando se debe usar double como fuente de BigDecimal, tenga en cuenta que este constructor proporciona una conversión precisa; no proporciona el mismo resultado que la siguiente operación: primero use el método Double.toString (double), luego use BigDecimal (String) Método de construcción para convertir double en String. Para obtener el resultado, utilice el método valueOf (doble) estático
2. La operación de división
a = a.divide (b, 2)
a = a.divide (b, 2, BigDecimal.'BigDecimal.Rounding method ')
2 es mantener el número de puntos decimales
al dividir por el método de división de BigDecimal. Dividir, cuando hay un decimal de bucle infinito, se lanzará una excepción
Solución: establezca la precisión y mantenga algunos lugares decimales para el método de división.
Resumen de uso constante de enumeración BigDecimal: modo de redondeo
CEILING
para redondear a infinito positivo. Modo de redondeo
ABAJO
para redondeo hacia cero. El modo de redondeo de
FLOOR
redondeo hacia infinito negativo.
HALF_DOWN es
el modo de redondeo que redondea al número más cercano. Si la distancia de dos números adyacentes es igual, redondea hacia abajo. El modo de redondeo que
HALF_EVEN redondea
al número más cercano. Si la distancia entre dos números adyacentes es igual, redondea al número par adyacente. El modo de redondeo que
HALF_UP redondea
al número más cercano. Si la distancia de dos números adyacentes es igual, redondee hacia arriba.
INNECESSARY es
un modo de redondeo que se utiliza para afirmar que la operación solicitada tiene un resultado preciso, por lo que no se requiere redondeo. Modo de redondeo
ARRIBA
para redondear desde cero.
3. Otras operaciones de valor
3.1 a.max (b) // Compara el valor máximo
3.2 a.min (b) // Compara el valor mínimo
3.3 a.abs () // Toma el valor más absoluto
3.4 a.negate () // toma lo contrario