次のコードを使用する場合:
- (NSString*)formatToCurrency:(float)inFloat {
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setMaximumFractionDigits:2];
[currencyFormatter setLocale:[NSLocale currentLocale]];
NSNumber *x = [NSNumber numberWithFloat:inFloat];
return [NSString stringWithFormat:@" %@", [currencyFormatter stringFromNumber:x]];
}
コードを呼び出すときに 203500 を渡すと、出力が $203,500.02 になります。
何が起こっているのかについていくつかの考えを聞きたいです。
ありがとう、
マット
編集: XCode は、デバッガーで表示したときに 203500 を報告していましたが、float を NSString に変換すると、203500.018 も表示されます。つまり、問題はフロートにあり、NSNumberFormatter にはありませんでした。