Я использую 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 канадских долларов
вы хотите, чтобы он говорил как канадский доллар вместо C-A $? –
@TejaNandamuri yes – Andy
Если вы установили код валюты в CAD, он отображает только 100 долларов США, но не как CA $ 100. Как вы получили часть СА? –