【问题标题】:Format double number using DecimalFormat使用 DecimalFormat 格式化双精度数
【发布时间】:2017-04-14 17:33:24
【问题描述】:

我正在尝试使用 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

【问题讨论】:

标签: java formatting


【解决方案1】:

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

分组分隔符通常用于千位,但在某些情况下 它分隔一万个国家。分组大小是一个常数 分组字符之间的位数,例如 3 表示 100,000,000 或 4 对应 1,0000,0000。如果你提供一个模式 多个分组字符,最后一个和之间的间隔 整数的结尾是使用的那个。所以“#,##,###,####”== "######,####" == "##,####,####"。

【讨论】:

    【解决方案2】:

    嗨,发现 Shankar Bro, 请参考以下链接,并尝试使用字符串插值和替换。

    http://tutorials.jenkov.com/java-internationalization/decimalformat.html

    【讨论】:

    • 感谢您的链接,使用十进制格式和字符串插值无法进行多重分组,我们在 Java 中无法使用,Scala 支持。
    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2020-11-12
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多