Java 使用十进制格式设置双精度数字的格式

Java 使用十进制格式设置双精度数字的格式,java,formatting,Java,Formatting,我正在尝试使用DecimalFormat类格式化一个双精度数字 我希望这是基于区域设置的打印 代码: DecimalFormat df = new DecimalFormat("#####,###,###.00"); String result = df.format(99999999999.99); System.out.println(result); 99,999,999,999.99 99999,999,999.99 实际输出: DecimalFormat df = new Dec

我正在尝试使用DecimalFormat类格式化一个双精度数字

我希望这是基于区域设置的打印

代码:

DecimalFormat df = new DecimalFormat("#####,###,###.00");
String result = df.format(99999999999.99);
System.out.println(result);
99,999,999,999.99
99999,999,999.99
实际输出:

DecimalFormat df = new DecimalFormat("#####,###,###.00");
String result = df.format(99999999999.99);
System.out.println(result);
99,999,999,999.99
99999,999,999.99
预期输出:

DecimalFormat df = new DecimalFormat("#####,###,###.00");
String result = df.format(99999999999.99);
System.out.println(result);
99,999,999,999.99
99999,999,999.99

这是不受支持的,您可以在javadocs中阅读

分组分隔符通常用于数千,但在某些情况下 它分隔了一万个国家。分组大小是一个常量 分组字符之间的位数,例如 100000000或100000000为4。如果你提供一个有 多个分组字符,最后一个和 整数的结尾就是所使用的那个。所以“#,##,###,##,###,##”== “############”==“###,###,#####”

嗨,Shankar兄弟, 请参考下面的链接,并尝试使用字符串插值和替换


可能重复@azurefrog:我们可以使用
String.format
来处理这个用例吗?感谢链接,使用十进制格式和字符串插值无法进行多重分组,我们不能在Java中使用,Scala支持它。