Вы обязательно должны использовать NSNumberFormatter
для этого. Основные шаги:
- Выделите, инициализируйте и настройте свой числовой форматер.
- Используйте средство форматирования, чтобы вернуть отформатированную строку из числа . (Для этого требуется номер NSNumber, поэтому вам нужно преобразовать ваш двойной или любой другой примитив в NSNumber.)
- Очистить. (Вы знаете, управление памятью.)
Этот код устанавливает числовой форматер. Я сделал все, что вы хотите, кроме немного валюты. Вы можете посмотреть это в документации.
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
[formatter setGroupingSeparator:groupingSeparator];
[formatter setGroupingSize:3];
[formatter setAlwaysShowsDecimalSeparator:NO];
[formatter setUsesGroupingSeparator:YES];
Далее вы хотите установить свой номер и вернуть отформатированную строку. В вашем случае мы оборачиваем двойное число в NSNumber. Я делаю это встроенным, но вы можете разбить его на два этапа:
NSString *formattedString = [formatter stringFromNumber:[NSNumber numberWithFloat:rev];
Не забудьте убрать!
[formatter release];
Краткое примечание о локализации:
Класс NSLocale предоставляет полезную информацию о локали пользователя. На первом этапе обратите внимание, как я использовал NSLocale для получения разделителя на локализованные группировки:
NSString *groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
(Некоторые страны используют точку / точку, в то время как другие используют запятую.) Я думаю, что есть способ получить локализованный символ валюты, но я не уверен на сто процентов, так что проверьте документацию. (Это зависит от того, что вы пытаетесь сделать.)