以美分显示价格

Displaying price in cents

我正在尝试使用 NSNumberFormatter 和区域设置以美分 (99¢) 而不是美元 ([=12=].99) 显示价格。

此代码将 99 美分的价格转换为字符串:[=12=].99。有没有办法让 NSNumberFormatter 在可能的情况下尝试使用 smaller/cent 面额?

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:product.priceLocale];
    NSString *formattedPriceString = [numberFormatter stringFromNumber:product.price];

我很确定没有简单且 general-purpose 的方法可以做到这一点。我认为你只需要在 case-by-case 的基础上处理它。如果您想为国际用户本地化您的应用程序,但希望您的许多客户来自美国,您可以像我那样做:

if priceString == "[=10=].99" && NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as? String == "US" {
    priceString = "99¢"
}