浮点数格式化问题

时间:2013-05-10 10:24:30

标签: java numbers number-formatting decimalformat

我正在使用此代码:

DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
float a=(float) 15000.345;
Sytem.out.println(df.format(a));

我收到此输出:15,000.35 我不希望逗号进入此输出。 我的输出应该是:15000.35

在Java中获取此输出的最佳方法是什么?

5 个答案:

答案 0 :(得分:5)

阅读javadoc并使用:

df.setGroupingUsed(false);

答案 1 :(得分:3)

             DecimalFormat df = new DecimalFormat();
             df.setMinimumFractionDigits(2);
             df.setMaximumFractionDigits(2);
             df.setGroupingUsed(false);
             float a=(float) 15000.345;
             System.out.println(df.format(a));

 Sytem.out.println(df.format(a)); //wrong  //sytem

 System.out.println(df.format(a));//correct //System

答案 2 :(得分:1)

应设置分组大小。默认值为3.请参阅Doc.

df.setGroupingSize(0);

或者您使用setGroupingUsed。

  df.setGroupingUsed(false);

您的完整代码

DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
df.setGroupingUsed(false);
float a=(float) 15000.345;
Sytem.out.println(df.format(a));

答案 3 :(得分:0)

您也可以将#####.##作为模式传递

DecimalFormat df = new DecimalFormat("#####.##");

答案 4 :(得分:0)

你可以这样做:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.'); 
DecimalFormat df = new DecimalFormat(formatString, otherSymbols);

之后你已经完成了:

df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
float a=(float) 15000.345;
System.out.println(df.format(a));

这将为您提供预期的结果。