Отображение цены в центах
Я пытаюсь отобразить цену в центах (99¢
) вместо долларов ($0.99
) используя NSNumberFormatter и локаль.
Этот код превращает цену в 99 центов в строку: $0.99
, Есть ли способ заставить NSNumberFormatter пытаться использовать меньшие / центовые деноминации, когда это возможно, вместо этого?
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:product.priceLocale];
NSString *formattedPriceString = [numberFormatter stringFromNumber:product.price];
1 ответ
Решение
Я почти уверен, что нет простого и универсального способа сделать это. Я думаю, что вы просто должны справиться с этим в каждом конкретном случае. Если вы хотите локализовать свое приложение для международной аудитории, но ожидаете, что многие ваши клиенты будут из США, вы можете сделать что-то вроде того, что я сделал:
if priceString == "$0.99" && NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as? String == "US" {
priceString = "99¢"
}