如何在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/

10-13 05:29