如何在float中将空格设置为DecimalFormat的千位分隔符?我想将13,52显示为13,5,但是将13,00显示为13,我这样做是
new DecimalFormat("#.#").format(fIncome)
但我想将1400,5设为1400,5,并将1400设为1400。
对于double我使用以下代码(我不想在dCount中的逗号后显示数字):
String.format("%,d", (int)dCount)
但是,如何将其用于带逗号后的带有1个数字的浮点数呢?
最佳答案
可接受的答案可能缺少几行代码,因为它无法按所述方式工作。这是我的操作方式:
private static final String DECIMAL_FORMAT = "###,###.#";
private String formatValue(Number value, String formatString) {
DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
formatSymbols.setDecimalSeparator('.');
formatSymbols.setGroupingSeparator(' ');
DecimalFormat formatter = new DecimalFormat(formatString, formatSymbols);
return formatter.format(value);
}
然后我这样称呼它:
formatValue(value, DECIMAL_FORMAT);
为了解释它是如何工作的,将DECIMAL_FORMAT中的
.
替换为小数点分隔符,并将,
替换为groupingSeparator,在这种情况下为空格。关于java - 如何设置空格分隔符以使DecimalFormat float ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28432122/