2

通貨の値を NSDecimalNumbers に保存し (このフォーラムの他の複数のスレッドで推奨されているように)、NSNumberFormatter を使用してそれらを正しく表示し、テキスト入力を処理しています。すべて良い!ただし、iPhone 環境設定の一般設定で地域形式を米国以外の場所 (ドイツなど) に変更し、アプリを見ると、すべての番号が $ から € に変更されています。そのため、最初に「$100.00」と入力された金額は、「100,00 €」と表示されます。

これは悪いです。悲しいことに、ドルはもはやユーロと同じように評価されていないためです。最初に作成された通貨。

ユーザーが世界中を移動する際にこれらの数値が正しくフォーマットされるようにするには、Cocoa はどのような方法をとっていますか? アプリの有用性を単一の通貨に制限する必要はありません...

4

1 に答える 1

3

値を入力すると、現在のシステム ISO 4217 currencyCode を取得し、それを数値と共に保存できます (これは単なる文字列です)。

NSString* currencyCode = [[[[NSNumberFormatter alloc] init] autorelease] currencyCode];

データを表示するときは、NSNumberFormatter でこの currencyCode を設定します。

// NSNumberFormatter* formatter = [[[[NSNumberFormatter alloc] init] autorelease] setCurrencyCode:currencyCode];

コードのタイプミスを編集:

NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setCurrencyCode:currencyCode];
于 2009-06-30T09:22:05.963 に答える