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

Eri*_*pir 12 java double formatting

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

Ade*_*ari 14

您的问题属于Locale,正如Rorick正确指出的那样.但是,您应该查看DecimalFormat类,以防更改Locale意味着搞乱所有事情.

查看NumberFormat类,处理千位分隔符.因为看起来你的情况是关于千分隔.


小智 8

这将删除所有分组(在您的情况下为逗号).

DecimalFormat df = new DecimalFormat();
df.setGroupingUsed(false);
Run Code Online (Sandbox Code Playgroud)


adi*_*tri 6

据我所知,你无法禁用该toString()方法返回的内容.

我的解决方案如下:

someDouble.toString().replaceAll(",", "");
Run Code Online (Sandbox Code Playgroud)

不是最优雅的解决方案,但它的工作原理.

  • 这是一个黑客,而不是解决方案,imho. (4认同)
  • 如果您的程序仅供个人家庭使用. (2认同)

cru*_*dog 5

Java 非常支持使用NumberFormat类在不同语言环境中格式化文本中的数字:

使用当前语言环境:

NumberFormat.getNumberInstance().format(5000000);
Run Code Online (Sandbox Code Playgroud)

将为您提供(使用瑞典语语言环境)字符串:5 000 000

...或使用特定的语言环境(例如法语,也会导致5 000 000):

NumberFormat.getNumberInstance(Locale.FRANCE).format(5000000);
Run Code Online (Sandbox Code Playgroud)