2012-06-08 1 views
0

Я пытаюсь преобразовать что-то вроде 11 038 665 в «11 миллионов». Я уверен, что это возможно, но может быть слишком сложно, чтобы это стоило того. Пока я использую важные функции цифр NSNumberFormatter, чтобы сократить его до 11 000 000, а затем вернуться к номеру и использовать NSNumberFormatterSpellOutStyle, чтобы выписать на «одиннадцать миллионов», есть ли способ получить «11 миллионов» вместо этого?NSNumber номер и слово combo

Мой текущий код:

NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init]; 
[fmtr setUsesSignificantDigits:YES]; 
[fmtr setMaximumSignificantDigits:3]; 
NSNumber *shortNum = [fmtr numberFromString:[fmtr stringFromNumber:longNum]]; 
[fmtr setNumberStyle:NSNumberFormatterSpellOutStyle]; 
NSString *shortNumSpelledOut = [fmtr stringFromNumber:shortNum]; 
+0

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

+0

@nhahtdh да ... Я беспокоился, что может быть так. –

+0

В общем вы можете использовать методы NSString для этой цели. – RomanHouse

ответ

1

Конечно, просто разделить число на один миллион и назначить ответ на междунар - что даст вам 11, а затем использовать stringWithFormat: @ «% d миллионов» ,

+0

Не могу поверить, что я сразу не подумал об этом. Я так попался в NSNumberFormatter, о котором я даже не думал. Спасибо! –