格式化用户定义的货币格式的nsnumber

时间:2012-09-07 14:38:34

标签: iphone ios nsnumberformatter

我需要根据一些数据和用户选项格式化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];

结果......非常糟糕......

0 个答案:

没有答案
相关问题