我使用NSNumberFormatter
格式化语音价格。我发现当没有使用千位分隔符和某些货币列表(例如US $,€,£)时,它可以正常工作,但它似乎不适用于任何其他货币,例如CA $发音为C-A-Dollar ...配置NSNumberFormatter
以获得适合语音输出的合适输出的正确方法是什么?
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.usesGroupingSeparator = NO;
formatter.currencyCode = @"NOK";
view.accessibilityLabel = [formatter stringFromNumber:@100];
正如卡尔在下面提到的,可以使用.CurrencyPluralStyle
。它根据区域设置格式化货币,并忽略所有其他设置,甚至usesGroupingSeparator
。通过一些手工操作,它可以是一个合适的替代方案!
以下示例:
let formatter = NumberFormatter()
formatter.numberStyle = .currencyPlural
formatter.usesGroupingSeparator = false // being entirely ignored :/
formatter.locale = Locale(identifier: "en_CA")
let str = formatter.string(from: 1000.50)!
print("\(str)")
产地:
1,000.50加元
答案 0 :(得分:2)
NSNumberFormatterCurrencyPluralStyle
满足您的需求吗?不过,这只是iOS9及更高版本。