将DecimalFormat中的点改为逗号

3

当我使用这个格式化程序时:

java.text.DecimalFormat("#.000");

对于1234567/1000000.0

输出结果为:

1.235

我希望你可以把它变成这样:
1,235

我尝试了这个:

java.text.DecimalFormat("#,000");

但它没有按照期望的方式工作。我该如何在我的情况下将点号更改为逗号?


请看这里:https://dev59.com/zmkv5IYBdhLWcg3wdQhT - Vincent Beltman
4个回答

17
你需要使用 DecimalFormatSymbols 的实例来设置格式符号:
public void testDec() {
    DecimalFormat df = new DecimalFormat("#.000");
    DecimalFormatSymbols sym = DecimalFormatSymbols.getInstance();
    sym.setDecimalSeparator(',');
    df.setDecimalFormatSymbols(sym);
    System.out.println(df.format(1234567/1000000.0));
}

输出是

1,235

0

你想用逗号显示小数的原因是什么?

否则

Double answer = 1234567/1000000.0;
DecimalFormat formatter = new DecimalFormat("#,###");
System.out.println(formatter.format(answer*1000));

0
希望下面的代码能够帮到您。
public void decimalExample() {
    DecimalFormat df = new DecimalFormat("#.000");
    DecimalFormatSymbols sym = DecimalFormatSymbols.getInstance();
    sym.setDecimalSeparator(',');
    df.setDecimalFormatSymbols(sym);
    System.out.println(df.format(138947293/1000000.0));
}

-1

你可以使用 , 替换 .

DecimalFormat decimalFormat=new DecimalFormat("#.000");
double d=1234567/1000000.0;
System.out.println(decimalFormat.format(d).replace(".",","));

输出:

1,235

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接