使用toString()
时,Double添加逗号(5143打印为5,143)。
如何禁用逗号?
答案 0 :(得分:14)
你的问题属于Locale,正如Rorick正确指出的那样。但是,您应该查看DecimalFormat类,以防更改Locale意味着搞乱所有事情。
查看NumberFormat类,处理千分隔符。因为看起来你的情况就是千位分隔符。
答案 1 :(得分:7)
这将删除所有分组(在您的情况下为逗号)。
DecimalFormat df = new DecimalFormat();
df.setGroupingUsed(false);
答案 2 :(得分:6)
据我所知,您无法禁用toString()
方法返回的内容。
我的解决方案如下:
someDouble.toString().replaceAll(",", "");
不是最优雅的解决方案,但它确实有效。
答案 3 :(得分:4)
myDouble.toString().replaceAll(",", "");
答案 4 :(得分:4)
Java非常支持使用NumberFormat类格式化不同语言环境中文本中的数字:
使用当前区域设置:
NumberFormat.getNumberInstance().format(5000000);
将为您(使用瑞典语语言环境)提供字符串:5 000 000
...或使用特定的语言环境(例如法语,也会导致 5 000 000 ):
NumberFormat.getNumberInstance(Locale.FRANCE).format(5000000);
答案 5 :(得分:3)
您可能需要更改区域设置。它默认来自系统区域设置,但您可以覆盖它。阅读Locale上的javadoc和此little tutorial即可开始。可以通过命令行指定区域设置:
java -Duser.language=en -Duser.region=US MyApplication
答案 6 :(得分:3)
三种方式:
使用DecimalFormat
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = df.getDecimalFormatSymbols();
dfs.setGroupingSeparator(Character.MAX_VALUE);
df.setDecimalFormatSymbols(dfs);
System.out.println(df.format(doubleVar));
(正如其他人所建议的那样)只需替换你得到的字符串中的逗号
答案 7 :(得分:2)
NumberFormat format = NumberFormat.getInstance();
format.setGroupingUsed(假);
答案 8 :(得分:1)
我使用此方法将double格式化为具有固定语言环境的字符串,不使用分组 最小和最大分数位数
public String formatNumber(double number){
NumberFormat nf = NumberFormat.getInstance(new Locale("en", "EN"));
nf.setMaximumFractionDigits(3);
nf.setMinimumFractionDigits(1);
nf.setGroupingUsed(false);
String str = nf.format(number);
return str;
}
答案 9 :(得分:0)
Double result= 5143.0;
Sysout(result.toString())
给我5143.0...
你可以把你得到的代码