ドル記号とドル記号だけが必要な場合'$#,##0.00'
は、リテラルのような形式を指定してみません$
か? または、デフォルトで必要な方法で金額をフォーマットするロケールを指定します。
指定NSNumberFormatterCurrencyStyle
は、ロケールの標準通貨形式を設定するためのショートカットにすぎません。これには、記号が金額の前に付いているか後ろに付いているかが含まれますが、形式を手動で指定しているため、実行していることにはほとんど影響しません。
おUS$
住まいの地域に合わせて通貨 USD を適切にフォーマットしているため、表示されています。(ただし、通貨コードのプレフィックスまたはサフィックスの配置を要求するかどうかを尊重するため、フォーマット文字列と出力を混同している必要があります。)しかし、darvids0nはほとんど正しいです:
- 書式文字列内の 1 つの通貨記号は、その通貨のロケール記号を配置します。これは、en や
US$
他の多くの記号では "$" です。
- 「USD」などの国際記号が 2 か所に表示されます。
- 3 桁は、その通貨のロケールの表示名 (「US ドル」など) です。
これは、スウェーデンのロケールを使用したこの動作の例です (デフォルトで継承され、明示的に設定されていません。現在、私のマシンはそのように設定されています)。
> 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'
(構文はF-Scriptの構文です。)