Red de conocimiento del abogados - Preguntas y respuestas jurídicas - BigDecimal elimina el exceso de 0 al final

BigDecimal elimina el exceso de 0 al final

BigDecimal es una clase comúnmente utilizada para procesar operaciones de punto flotante de alta precisión

Cuando necesita imprimir los valores de punto flotante guardados en BigDecimal, especialmente al mostrarlos En la página, puede encontrar problemas inesperados relacionados con la ley de ciencia y tecnología.

Generalmente, la impresión de números de punto flotante se puede completar directamente utilizando el método BigDecimal.toString().

Por ejemplo:

System.out.println( new BigDecimal("10000000000").toString()

Sin embargo, el método toString(); salidas No hay garantía de que una cadena no esté en notación científica.

Sin embargo, en el uso diario, el método toString() genera una cadena numérica ordinaria en lugar de una notación científica.

Escribe directamente así:

System.out.println( new BigDecimal("100.000").toString());

La salida del programa. es: 100.000

Si queremos eliminar el 0 extra al final, entonces debemos escribir:

System.out.println( new BigDecimal("100.000").stripTrailingZeros( ).toString( ));

Entre ellos, la función stripTrailingZeros() se usa para eliminar el 0 adicional al final, pero la salida del programa en este momento es: 1E 2

Es notación científica y puede que no sea lo que queremos.

La solución es muy simple. Si queremos evitar generar una cadena en notación científica, necesitamos usar la función toPlainString() en lugar de toString(). Por ejemplo:

System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());

En este momento, la salida del programa es 100

Utilice @JsonSerialize para generar

1. Cree una herramienta de formato BigDecimal

2. Agregue anotaciones a las propiedades correspondientes a la clase de entidad devuelta: