Wenn Sie ein Dollar-Zeichen und nur ein Dollar-Zeichen wollen, warum geben Sie nicht einfach ein Format wie '$#,##0.00'
mit einer wörtlichen $
? Alternativ können Sie auch ein Gebietsschema angeben, das den Betrag standardmäßig so formatiert, wie Sie es wünschen.
Angabe von NSNumberFormatterCurrencyStyle
ist nur eine Abkürzung, um das Standard-Währungsformat des Gebietsschemas festzulegen. Dazu gehört auch, ob das Symbol dem Betrag vorangestellt oder angehängt wird, aber es hat wenig Einfluss auf das, was Sie tun, da Sie das Format von Hand festlegen.
Sie sehen US$
weil es die Währung USD für Ihre Region entsprechend formatiert. (Allerdings müssen Sie Ihre Formatzeichenfolge und Ihre Ausgabe verwechselt haben, denn es tut beachten Sie, ob Sie den Währungscode als Präfix oder Suffix angeben). Aber darvids0n hat größtenteils recht:
- Ein Währungssymbol im Formatstring setzt das Symbol des Gebietsschemas für diese Währung, das in den Sprachen en und
US$
in vielen anderen;
- An zwei Stellen das internationale Symbol, z. B. "USD";
- An dritter Stelle steht der Anzeigename des Gebietsschemas für diese Währung, z. B. "US Dollar".
Hier ist ein Beispiel für dieses Verhalten unter Verwendung des schwedischen Gebietsschemas (standardmäßig vererbt, nicht explizit eingestellt; das ist das, was auf meinem Rechner im Moment eingestellt ist):
> nf := NSNumberFormatter alloc init
> nf setNumberStyle:NSNumberFormatterDecimalStyle
> amt := 1250.56
> nf setPositiveFormat:'¤ #,##0.00'
> nf stringFromNumber:amt
'US$ 1 250,56'
> nf setPositiveFormat:'#,##0.00 ¤'
> nf stringFromNumber:amt
'1 250,56 US$'
> nf setPositiveFormat:'#,##0.00 ¤¤'
> nf stringFromNumber:amt
'1 250,56 USD'
> nf setPositiveFormat:'#,##0.00 ¤¤¤'
> nf stringFromNumber:amt
'1 250,56 US-dollar'
(Die Syntax entspricht der von F-Skript .)