Ответ 1
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 it $ 5,00
.