本地化的浮动,并指定在iOS的小数位数(Localize a float and specify n

2019-06-26 07:22发布

我有我想要显示到小数点后一位的浮动。 例如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

Answer 1:

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]];


文章来源: Localize a float and specify number of decimal places in iOS