java.math.BigDecimal retiene el número especificado de dígitos significativos (sin contar el 0 inicial)

Enciclopedia Baidu: desde el primer dígito distinto de cero a la izquierda de un número hasta el último dígito, todos los números son dígitos válidos de este número.
Es un número desde el primer número distinto de cero de la izquierda hasta el final. Todos los números (incluido el 0, sin contar la enésima potencia de 10 en notación científica) se denominan números significativos. En pocas palabras, elimine todos los ceros delante de un número, y todo, desde el primer entero positivo hasta el dígito exacto, es un número significativo.
Por ejemplo: 0.0109, los dos primeros 0 no son dígitos válidos y los 109 posteriores son dígitos válidos (tenga en cuenta que el 0 del medio también se cuenta).

BigDecimalEl tipo de decimal puede utilizar los MathContextdígitos válidos especificados.

/**
 * 写法来自StackOverflow的Kru 
 * https://stackoverflow.com/questions/7572309/any-neat-way-to-limit-significant-figures-with-bigdecimal
 */
System.out.println(new BigDecimal(0.022223).round(new MathContext(3, RoundingMode.HALF_UP)));
// (四舍五入)输出:0.0222

System.out.println(new BigDecimal(144.022223).round(new MathContext(5, RoundingMode.HALF_UP)));
// (四舍五入)输出:144.02

Supongo que te gusta

Origin blog.csdn.net/qq_35977139/article/details/108124556
Recomendado
Clasificación