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

时间:2013-12-11 14:19:43

标签: java

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

e.g。

12334 - > 12334

12334.99 - > 12,334.99

12334.90 - > 12,334.90

12334.90 - > 12,334.9

目前使用NumberFormat.getInstance()仅对上面的最后一个例子失败

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

试试这个:

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