根据区域设置的数字格式(逗号分隔) [英] Number Format (Comma Separation) as per locale
问题描述
我需要以以下格式123,456,789.90
显示类似123456789.905
的数值.但是逗号分隔会根据手机中选择的区域设置而变化(就像美国英语选择的逗号分隔是 3 个位置,如果选择印度英语就像 12,34,56,789.90
)..>
如何格式化我的 Double
?
所以,java.text.NumberFormat
并没有解决这个问题,不幸的是,com.ibm.icu.text.NumberFormat
确实如此.
你可以使用这个:
双 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
.
I have a requirement to show a number value like 123456789.905
in the following format 123,456,789.90
. But the comma separation changes depending on the locale selected in the phone (as if with US English selected comma separation is 3 places and if India English is selected it is like 12,34,56,789.90
).
How can I format my Double
?
So, java.text.NumberFormat
doesn't slove the problem, unfortunately, but com.ibm.icu.text.NumberFormat
does.
You can use this:
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));
This outputs: 12,34,56,789.90
.
这篇关于根据区域设置的数字格式(逗号分隔)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!