我正在尝试将一些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);
}