0

我正在使用这段代码:

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 中获取此输出的最佳方法是什么?

4

5 回答 5

5

阅读 javadoc 并使用它:

df.setGroupingUsed(false);

于 2013-05-10T10:27:02.083 回答
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
于 2013-05-10T10:28:13.567 回答
1

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

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));
于 2013-05-10T10:28:03.463 回答
0

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

DecimalFormat df = new DecimalFormat("#####.##");
于 2013-05-10T10:28:18.533 回答
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));

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

于 2013-05-10T10:28:43.530 回答