6

小数点以下 1 桁まで表示したい float があります。例: 104.8135674... は、英語では 104.8 と表示されます。通常、私は使用します:

myString = [NSString stringWithFormat:@"%.1f",myFloat];

ただし、番号をローカライズしたいので、試しました:

myString = [NSString localizedStringWithFormat:@"%.1f",myFloat];

これにより、正しい小数点記号が割り当てられます (例:

英語: 104.8

ドイツ語: 104,8

ただし、アラビア数字を使用しない言語(0123456789) では、正しい小数点記号が使用されますが、数字はアラビア数字のままです。例えば

バーレーン - アラビア語: 104,8 (数字には別の記号を使用する必要があります)

だから私は試しました:

myString = [NSNumberFormatter localizedStringFromNumber:[NSNumber numberWithFloat:myFloat] numberStyle:kCFNumberFormatterDecimalStyle];

しかし、それでは小数点以下の桁数を指定できないようです。それは例えば与える

英語: 104.813

4

1 に答える 1

12

NSNumberFormatter-setMaximumFractionDigits:はその目的で使用され、非常に優れたフォーマッタを再利用できます。

NSNumberFormatter * formatter =  [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:1];
[formatter setLocale:[NSLocale currentLocale]];
NSString * myString = [formatter stringFromNumber:[NSNumber numberWithFloat:123.456]];
于 2012-07-16T12:16:22.653 に答える