Ich verwende NSNumberFormatter
, um den Preis für Voice-over zu formatieren. Ich fand, dass es gut funktioniert, wenn kein Tausendertrennzeichen verwendet wird und für bestimmte Listen von Währungen wie US $, €, £, aber es scheint nicht für andere Währungen zu funktionieren, z.B. CA $ wird als C-A-Dollar ausgesprochen ... Was ist der richtige Weg, um NSNumberFormatter
zu konfigurieren, um einen vernünftigen Ausgang zu erhalten, der für Voice-Over geeignet ist?Format Zugänglichkeit Etikett für Preis
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.usesGroupingSeparator = NO;
formatter.currencyCode = @"NOK";
view.accessibilityLabel = [formatter stringFromNumber:@100];
Wie unten erwähnt, kann .CurrencyPluralStyle
verwendet werden. Es formatiert die Währung basierend auf dem Gebietsschema und ignoriert alle anderen Einstellungen selbst usesGroupingSeparator
. Mit manueller Arbeit kann es eine geeignete Alternative sein!
Beispiel unten:
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)")
Produziert:
1,000.50 kanadischen Dollar
Sie wollen es als kanadischer Dollar anstelle von C-A $ sagen? –
@TejaNandamuri ja – Andy
Wenn Sie den Währungscode auf CAD setzen, werden nur die $ 100, nicht aber die CA $ 100 angezeigt. Wie hast du den CA-Teil bekommen? –