格式化大量

时间:2012-04-19 19:47:00

标签: objective-c nsnumberformatter

大家好,这是我的第一个问题,我想对你来说很容易,我想转换这个NSString" 42031692.7810"这样的事情:$ 4,2031,692.78,我有这个代码:

NSString *element = @"42031692.7810";
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [formatter setGeneratesDecimalNumbers:YES];
    [formatter setMaximumFractionDigits:2];
    NSNumber *temp = [formatter numberFromString:element];
    NSLog(@"formatter%@",[temp stringValue]);

但是输出是这样的:

2012-04-19 14:43:42.467 HelloWorld[5663:f803] formatter(null)

我该如何解决这个问题?希望你能帮我!!

问候!

1 个答案:

答案 0 :(得分:2)

您有字符串@"42031692.7810",并且您设置了NSNumberFormatter来接受样式为货币的内容。 @"42031692.7810"未设为货币样式。因此它返回nil

您必须将数字格式化程序设置为接受十进制输入,将字符串转换为NSNumber,然后将格式化程序样式设置为" Currency"样式,然后将NSNumber转回NSString