我有一个浮动,我想显示到一个小数位。例如。 104.8135674 ...以英文显示为104.8。通常我会使用:
myString = [NSString stringWithFormat:@"%.1f",myFloat];
但是,我想将数字本地化,所以我尝试了:
myString = [NSString localizedStringWithFormat:@"%.1f",myFloat];
这适用于分配正确的小数符号(例如
)英语:104.8
德语:104,8
但是,对于使用不使用arabic numerals(0123456789)的语言,使用正确的小数符号,但数字仍为阿拉伯数字。例如
巴林 - 阿拉伯语:104,8(它应该使用不同的数字符号)
所以我试过了:
myString = [NSNumberFormatter localizedStringFromNumber:[NSNumber numberWithFloat:myFloat] numberStyle:kCFNumberFormatterDecimalStyle];
但是,我似乎无法指定小数位数。它给出了例如
英语:104.813
答案 0 :(得分:11)
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]];