Отображение цены в центах

Я пытаюсь отобразить цену в центах (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¢"
}
Другие вопросы по тегам