浮点数格式问题[重复]
Posted
技术标签:
【中文标题】浮点数格式问题[重复]【英文标题】:Float number formatting issue [duplicate] 【发布时间】:2013-05-10 10:24:30 【问题描述】:我正在使用此代码:
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 中获得此输出的最佳方法是什么?
【问题讨论】:
【参考方案1】:阅读 javadoc 并使用它:
df.setGroupingUsed(false);
【讨论】:
【参考方案2】:试试
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
【讨论】:
【参考方案3】:应该设置分组大小。默认值为 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));
【讨论】:
【参考方案4】:您也可以将#####.##
作为模式传递
DecimalFormat df = new DecimalFormat("#####.##");
【讨论】:
【参考方案5】:你可以这样做:
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));
这将为您提供预期的结果。
【讨论】:
以上是关于浮点数格式问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章