我试图使用NSNumberFormatter和语言环境以美分(99¢)代替美元($0.99)显示价格。

此代码将价格为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];

最佳答案

我敢肯定,没有简单而通用的方法可以做到这一点。我认为您只需要逐案处理。如果您想为国际用户本地化您的应用程序,但是希望您的许多客户来自美国,则可以执行类似我的操作:

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

关于ios - 以美分显示价格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31442936/

10-12 22:28