为价格格式化无障碍标签
Format accessibility label for price
我使用 NSNumberFormatter
来格式化画外音的价格。我发现它在没有使用千位分隔符和某些货币列表(如美元、欧元、英镑)时工作正常,但它似乎不适用于任何其他货币,例如CA$ 发音为 C-A-Dollar...配置 NSNumberFormatter
以获得适合画外音的体面输出的正确方法是什么?
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.usesGroupingSeparator = NO;
formatter.currencyCode = @"NOK";
view.accessibilityLabel = [formatter stringFromNumber:@100];
正如 Carl 在下面提到的,可以使用 .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 Canadian dollars
NSNumberFormatterCurrencyPluralStyle
是否满足您的需求?不过,那是 iOS9 以及以后的版本。
我使用 NSNumberFormatter
来格式化画外音的价格。我发现它在没有使用千位分隔符和某些货币列表(如美元、欧元、英镑)时工作正常,但它似乎不适用于任何其他货币,例如CA$ 发音为 C-A-Dollar...配置 NSNumberFormatter
以获得适合画外音的体面输出的正确方法是什么?
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.usesGroupingSeparator = NO;
formatter.currencyCode = @"NOK";
view.accessibilityLabel = [formatter stringFromNumber:@100];
正如 Carl 在下面提到的,可以使用 .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 Canadian dollars
NSNumberFormatterCurrencyPluralStyle
是否满足您的需求?不过,那是 iOS9 以及以后的版本。