我要求以以下格式123456789.905显示数字值123,456,789.90。但是逗号分隔会根据电话中选择的语言环境而变化(好像使用美国英语时,逗号分隔为3位,如果选择了印度英语,则类似于12,34,56,789.90)。

如何格式化Double

最佳答案

因此,不幸的是,java.text.NumberFormat不能解决问题,但是 com.ibm.icu.text.NumberFormat 可以解决问题。

您可以使用此:

Double d = 123456789.905;
com.ibm.icu.text.NumberFormat format = com.ibm.icu.text.NumberFormat.getNumberInstance(new Locale("en", "in"));
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(2);

System.out.println(format.format(d));

输出:12,34,56,789.90

关于java - 根据区域设置的数字格式(逗号分隔),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20883402/

10-10 11:55