Java 如何将 groupingSize() 与 NumberFormat 一起使用

Posted

技术标签:

【中文标题】Java 如何将 groupingSize() 与 NumberFormat 一起使用【英文标题】:Java How to use groupingSize() with NumberFormat 【发布时间】:2020-09-21 18:29:16 【问题描述】:

我正在尝试将DecimalFormat.groupingSize() 功能与NumberFormat 类一起使用,因为我需要根据国家/地区进行分组大小,例如中国为1,2345,6789,加拿大为1,234,567,印度为1,23,450。 我尝试寻找解决方案,但解决方案基于DecimalForamt。我们有什么方法可以使用NumberFormat 来解决这个挑战?

【问题讨论】:

我认为不可能。看看:***.com/questions/5379231/… 和:***.com/questions/34852803/… 【参考方案1】:

DecimalFormat 不允许可变分组大小。

对于可变分组大小,使用Icu4J's DecimalFormat

    com.ibm.icu.text.DecimalFormatSymbols dfs = new com.ibm.icu.text.DecimalFormatSymbols();
    dfs.setGroupingSeparator(' ');
    com.ibm.icu.text.DecimalFormat df = new com.ibm.icu.text.DecimalFormat("0,00,000", dfs); // indian numbering system
    String s1 = df.format(500000); // 5,00,000
    String s2 = df.format(121212123); // 12,12,12,123
    String s3 = df.format(new com.ibm.icu.math.BigDecimal("67890000000000")); // 6,78,90,00,00,00,000 

【讨论】:

我需要java.text.NumberFormat,可以吗? NumberFormat 是 DecimalFormat 的超类。它不支持可变分组大小。使用 Icu4J 库。

以上是关于Java 如何将 groupingSize() 与 NumberFormat 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将Eclipse Portable与Java Portable集成?

如何将 SQLite 与 Java 连接起来?

Java - 如何将 JProgressBar 与 SwingWorker 一起使用

如何将 Swagger 与 Maven + Java + Jersey +Tomcat 集成

从 bigquery 查询整行时如何将模式与行合并 - java

如何将数组列表的相等性与现代 Java 进行比较?