NSNumberFormatter, безусловно, путь! Вы можете установить NSLocale на
NSNumberFormatter, форматер будет автоматически вести себя в соответствии с этой локалью. Стандартным языком для средства форматирования чисел всегда является валюта выбранного пользователем формата региона.
NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:@"5.00"];
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@"%@", [currencyFormatter stringFromNumber:someAmount]);
Это будет записывать сумму «5,00» в соответствии с форматом региона пользователя по умолчанию. Если вы хотите изменить валюту, вы можете установить:
NSLocale *aLocale = [[NSLocale alloc] initWithLocaleIdentifier: "nl-NL"]
[currencyFormatter setLocale:aLocale];
Который выберет валюту по умолчанию для этой локали.
Часто вы берете не в местной валюте, а в своей. Чтобы заставить NSNumberFormatter
форматировать в вашей валюте, сохраняя при этом форматирование чисел в настройках пользователя, используйте:
currencyFormatter.currencyCode = @"USD"
currencyFormatter.internationalCurrencySymbol = @"$"
currencyFormatter.currencySymbol = @"$"
В en-US это будет иметь формат $5.00
, в nl-NL это $ 5,00
.