« Bluetoothモジュール | トップページ | iPod touchケース »

NSNumberFormatter

ロケールによって通貨を変えるには NSNumberFormatter を使う。
ドキュメントによると、フォーマットは
http://unicode.org/reports/tr35/tr35-6.html#Number_Format_Patterns
に従うとよいらしい。

NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setLocale:[NSLocale currentLocale]];
[numberFormatter setFormat:[NSString stringWithFormat:@"%C#,##0.00" 0x00A4]];
NSLog("%@", [numberFormatter stringFromNumber:[NSNumber numberWithInt:12345]]);

0x00A4 は通貨記号で、フォーマッタを通すことでロケールによって¥になったり$になったりする。
問題はこれだと常に¥12345.00と表示されてしまう点。
でもフォーマットを [NSString stringWithFormat:@"%C#,##0" 0x00A4] にするとドルのときに
$12345.00 とならずに $12345 になっちゃう。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:[NSLocale currentLocale]];
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithInt:1000000]]);
[formatter release];
これだけで十分みたい。

|

« Bluetoothモジュール | トップページ | iPod touchケース »

パソコン・インターネット」カテゴリの記事

コメント

Tahnks for posting

投稿: LiaigoCit | 2008年8月10日 (日) 22時09分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1053175/22251468

この記事へのトラックバック一覧です: NSNumberFormatter:

« Bluetoothモジュール | トップページ | iPod touchケース »