私は次のDecimalFormatパターンを使用しています:
// Use ThreadLocal to ensure thread safety.
private static final ThreadLocal <NumberFormat> numberFormat =
new ThreadLocal <NumberFormat>() {
@Override protected NumberFormat initialValue() {
return new DecimalFormat("#,##0.00");
}
};
これにより、次の変換が実行されます。
1 -> 1.00
1.1 -> 1.10
1.12 -> 1.12
追加の要件があります。
1.123 -> 1.123
1.1234 -> 1.123
つまり、いつ
- 小数点以下 2 桁未満の場合は、小数点以下 2 桁まで「パディング」します。
- 小数点以下がちょうど 2 桁か 3 桁あるので、何もしません。
- 小数点以下 3 桁を超える場合は、小数点以下 3 桁まで切り捨てます。
DecimalFormatクラスでこの動作を指定できますか?