java - 如何根据输入长度更改 DecimalFormat 行为?

标签 java format decimal number-formatting decimalformat

我正在使用以下 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

这意味着当

  • 小数点后两位不足,我会“补”到小数点后两位。
  • 正好有二三位小数,我什么都不做。
  • 小数点后三位以上,我会截断到小数点后三位。

我可以使用 DecimalFormat 类指定此行为吗?

最佳答案

DecimalFormat("#,##0.00#")

关于java - 如何根据输入长度更改 DecimalFormat 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4429163/

相关文章:

java - 从 Camel 从 2.20.4 升级到 2.21.2 或 2.22.1 后,Apache Camel JAXB 解码返回空属性

c# - Linq 刚刚开始

java - clang/libclang 有 Java 绑定(bind)吗?

java - 如何在Retrofit2/rxJava中刷新ACCESS-TOKEN

减少上标字体大小 ggplot2 R

c# - 四舍五入小数位不起作用?

php - 小数点后0位四舍五入

javascript - 如何处理除法运算符的溢出

algorithm - 如何将十进制分数转换为十六进制分数?

java - WindowManager-Bad token exception only on Android 6