NSNumberFormatter setPositiveFormat - PullRequest
       0

NSNumberFormatter setPositiveFormat

2 голосов
/ 13 февраля 2012

Я пытаюсь использовать NSNumberFormatter, и я хотел бы использовать: -setPositiveFormat для настройки формата.

Я хочу преобразовать 121212.12 в 12.12E+04

Я должен использовать 9 цифр и 2 десятичных знака

Я близок к своей цели:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setFormatterBehavior:NSFoundationVersionNumber10_4]; // iOS supports only the modern 10.4+ behavior
[formatter setNumberStyle:NSNumberFormatterScientificStyle];
[formatter setMinimumFractionDigits:numberOfDecimalDigits];
[formatter setPositiveFormat:@"#.#E+00"];
[formatter setFormatWidth:9]; // set width
[formatter setPaddingCharacter:@"x"]; // choice padding Char
NSString *convertNumber = [formatter stringFromNumber:number];
return convertNumber;

Но это не работает ...

Настройте формат как:

[formatter setPositiveFormat:@"#.#E+00]; // my string is from my intuition ....

Это решение?

2-й вопрос: я не понимаю, что означает #? Также 00 в строке? (Я не могу найти ответ в Док)

Спасибо!

1 Ответ

4 голосов
/ 13 февраля 2012

Я понимаю, что вы хотите, чтобы ваш отформатированный номер имел точно следующий формат: (2 цифры). (2 цифры) E + (2 цифры)

Вы можете настроить NSNumberFormatter следующим образом:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setPositiveFormat:@"00.00E+00"];
NSNumber *number = [NSNumber numberWithFloat:121212.12];
NSString *convertNumber = [formatter stringFromNumber:number];

Что касается значения 0 и #, посмотрите на эту ссылку .

...