我正在尝试格式化显示的十进制数字,以设备所在位置的格式显示它。我还希望这个十进制数舍入到最接近的10位,如果是,则不显示第10位” 0.0" 。
我想我很亲密。我目前的情况是:
NumberFormat numberFormat = NumberFormat.getInstance(getResources().getConfiguration().locale);
if (numberFormat instanceof DecimalFormat) {
((DecimalFormat)numberFormat).setDecimalSeparatorAlwaysShown(true);
((DecimalFormat)numberFormat).applyPattern("0.#");
}
myText.setText(numberFormat.format(myValue));
但是,如果我的数字大于1,000 ex: 1000.5
,TextView
将显示1000.5
而不是1,000.5
(我在美国)。
有人可以向我解释原因吗?
答案 0 :(得分:0)
您应该致电setGrouping(boolean)以确保打开分组。
NumberFormat numberFormat = NumberFormat.getInstance(getResources().getConfiguration().locale);
if (numberFormat instanceof DecimalFormat) {
final DecimalFormat df = (DecimalFormat)numberFormat;
df.setDecimalSeparatorAlwaysShown(true);
df.setGroupingUsed(true);
df.applyPattern("0.#");
}
myText.setText(numberFormat.format(myValue));