2015-04-18 4 views
0

Я пытаюсь отформатировать десятичное число для отображения, которое представляет его самостоятельно в формате местоположения, в котором находится устройство. Я также хочу, чтобы это десятичное число округлялось до ближайшего 10-го и не отображалось 10-е место, если это «.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)); 

Однако, если у меня есть несколько больше, чем 1000 ex: 1000.5, то TextView покажет 1000.5 вместо 1,000.5 (я нахожусь в США).

Может кто-нибудь объяснить мне, почему?

ответ

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)); 
+0

Благодарим за отзыв. Я последовал за вашим примером, но TextView все еще показывает «1000.5». [Ссылка] (http://i.imgur.com/NMMFyBa.png) – Andrew

Смежные вопросы