【问题标题】:Change dot to comma at DecimalFormat在 DecimalFormat 处将点更改为逗号
【发布时间】:2014-11-26 04:18:57
【问题描述】:

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

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

对于 1234567/1000000.0

输出是:

1.235

我想要这样:

1,235

并尝试过:

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

但它不能作为例外工作。如何根据我的情况将点改为逗号?

【问题讨论】:

标签: java decimalformat


【解决方案1】:

您需要使用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

【讨论】:

    【解决方案2】:

    您可以将. 替换为,

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

    输出:

    1,235
    

    【讨论】:

      【解决方案3】:

      您想用“,”显示十进制数字有什么特别的原因吗?

      否则

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

      【讨论】:

        【解决方案4】:

        希望下面的代码有所帮助

        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));
        }
        

        【讨论】:

          猜你喜欢
          • 2019-03-29
          • 2017-09-30
          • 1970-01-01
          • 2019-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-26
          相关资源
          最近更新 更多