我需要根据一些数据和用户选项格式化NSNumber。 首先,用户需要选择分组分隔符(“,”或“。”或无),如果分组分隔符为“,”,则小数分隔符将为“。”。 ,反之亦然......该数字是与其国际货币代码一起存储的货币(美元为美元,欧元为欧元等)......如果货币有符号,则应将其放在数字前面,如果并不是代码会取代它。
所以1234.50应该是这样的 $ 1,234.50 - 如果货币是美元且分组分隔符是“,” $ 1.234,50 - 如果seppareteor设置为“。” 和RON 1,234.50如果货币代码是RON(它没有货币符号)...... 我知道NSNumberFormatter依赖于iPhone的设置...这可能不是这里的情况,因为用户可以更改应用程序内的格式...任何好的想法如何做到这一点?
我试过
- (NSString *)getFormatedNumber:(NSNumber *)number withCurrency:(NSString *)currencyAbrev andMode:(NSUInteger)mode
{
NSNumberFormatter *formater = [[NSNumberFormatter alloc] init];
[formater setCurrencyCode:currencyAbrev];
if (mode == 1) {
[formater setGroupingSize:3];
[formater setGroupingSeparator:@","];
}else {
[formater setGroupingSeparator:@"."];
[formater setGroupingSize:3];
}
return [formater stringFromNumber:number];
}
这些是电话
self.label1.text = [[PSCurrencyDisplay sharedInstance] getFormatedNumber:[NSNumber numberWithDouble:12345.67f] withCurrency:@"USD" andMode:1];
self.label2.text = [[PSCurrencyDisplay sharedInstance] getFormatedNumber:[NSNumber numberWithDouble:12345.67f] withCurrency:@"EUR" andMode:2];
结果......非常糟糕......