字符串格式BigDecimal显示零位或两位小数,从不显示一位



我正在尝试将一些BigDecimal格式化为货币格式。如果BigDecimal中没有,我不需要小数点,但需要两个小数点来显示是否有(即使只有10s)

例如

12334->12334

12334.99->12334.99

12334.90->12334.90

不是

12334.90->12334.9

当前正在使用NumberFormat.getInstance(),该方法仅在上的最后一个示例中失败

int precision = val.toString().indexOf('.') != -1 ? 2:0;
NumberFormat formatter = NumberFormat.getInstance();
formatter.setMinimumFractionDigits(precision);
String result = formatter.format(val);

试试这个:

NumberFormat formatter = NumberFormat.getInstance();
formatter.setMinimumFractionDigits(2);
String formatted = formatter.format(number);
if (formatted.endsWith(".00")) {
    formatted = formatted.substring(0, formatted.length()-3);
}

最新更新