NSNumberformatter добавить нули к десятичной части - PullRequest
0 голосов
/ 05 июля 2018

Я ищу способ отображения следующего:

  • "20000.5" => "20000.50"
  • "20000" => "20 000,00"

поэтому в основном всегда два десятичных знака, добавляя дополнительный ноль к десятичной части, если есть только один десятичный знак

Каков наилучший способ сделать это? Я знаю, что могу использовать NSNumberformatter, но получаю «20000,9» => «20 000,9», а не «20000,9» => «20 000,90»

Ниже приведен код, который у меня есть, но он не работает.

NSNumberFormatter *numberFormatter2 = [[NSNumberFormatter alloc] init];
[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setUsesGroupingSeparator:YES];
[numberFormatter2 setDecimalSeparator:@"."];
[numberFormatter2 setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter2 setMaximumFractionDigits:2];
NSString *theString = [numberFormatter2 stringFromNumber:[NSNumber numberWithDouble:1008977.2]];
NSLog(@"Number is: %@", theString);

---Number is: 1,008,977.2
  • Я хотел, чтобы это было 1 008 977,20

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Ваш следующий код является ошибкой

[numberFormatter2 setMaximumFractionDigits: 2];

изменить код на следующий образец

[numberFormatter2 setMinimumFractionDigits: 2];

означает, что ваш выходной результат может содержать более двух десятичных чисел.

0 голосов
/ 05 июля 2018

Все, что вам нужно добавить, это:

[numberFormatter2 setMinimumFractionDigits:2];

Это даст желаемый результат.

Но, пожалуйста, удалите следующие строки:

[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setDecimalSeparator:@"."];

Такое фиксированное форматирование сбивает с толку многих ваших пользователей.

...