我要求以以下格式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/