Mat*_*tyG 5 floating-point cocoa-touch nsstring nslocalizedstring ios
我有一个浮动,我想显示到一个小数位.例如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
A-L*_*ive 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]];
Run Code Online (Sandbox Code Playgroud)