如何在没有逗号的情况下打印Double

时间:2010-02-11 07:28:47

标签: java formatting double

使用toString()时,Double添加逗号(5143打印为5,143)。 如何禁用逗号?

10 个答案:

答案 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)

三种方式:

  1. 使用DecimalFormat

    DecimalFormat df = new DecimalFormat();
    DecimalFormatSymbols dfs = df.getDecimalFormatSymbols();
    dfs.setGroupingSeparator(Character.MAX_VALUE);
    df.setDecimalFormatSymbols(dfs);
    System.out.println(df.format(doubleVar));
    
  2. (正如其他人所建议的那样)只需替换你得到的字符串中的逗号

  3. 设置VM加载时的区域设置

答案 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...你可以把你得到的代码

相关问题