java.math.BigDecimalは、指定された有効桁数を保持します(先頭の0はカウントされません)

Baidu百科事典:数字の左側のゼロ以外の最初の数字から最後の数字まで、すべての数字はこの数字の有効な数字です。
これは、左側の最初のゼロ以外の数値から最後までの数値です。すべての数値(0を含み、科学的記数法で10のN乗を数えない)は有効数字と呼ばれます。簡単に言えば、数値の前にあるすべてのゼロを削除すると、最初の正の整数から正確な桁まですべてが重要な数値になります。
例:0.0109、最初の2つの0は有効な数字ではなく、後ろの109は有効な数字です(中央の0もカウントされることに注意してください)。

BigDecimal小数のタイプは、MathContext指定された有効な数字を使用できます

/**
 * 写法来自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

おすすめ

転載: blog.csdn.net/qq_35977139/article/details/108124556