Как отформатировать двойное значение для данной локали и количества знаков после запятой?

Как я могу использовать NumberFormatдля форматирования значения doubleдля даннойLocale(локали по умолчанию достаточно )и для заданное количество знаков после запятой?

Например, у меня есть эти значения:

double d1 = 123456.78;
double d2 = 567890;

И я хочу напечатать их следующим образом, например, с локалью США и двумя десятичными знаками:

123,456.78
567,890.00

В данном случае мне не важен режим округления, потому что эти двойные значения получаются из BigDecimalс заданным масштабом, поэтому их количество знаков после запятой всегда меньше или равно количеству знаков после запятой, которое я хочу напечатать.

Править:

Чтобы немного прояснить ситуацию, я хочу отображать деньги в зависимости от локали, но с фиксированным числом знаков после запятой. В приведенном выше примере показано, как должны быть отформатированы значения, если локаль системы en_US. Теперь скажем,языковой стандарт системы -cs_CZ(Чешский ), поэтому одни и те же числа должны быть отформатированы таким образом:

123 456,78
567 890,00

Теперь, как я могу настроить NumberFormat, чтобы всегда отображались 2 десятичных знака, но для отображения разделителя тысяч и десятичной точки на основе на текущей локали?

14
задан Natix 2 May 2012 в 10:07
поделиться