NSNumberFormatter小数点后不添加逗号

时间:2012-04-03 14:42:31

标签: ios nsnumberformatter

我正在尝试格式化数字,例如“123.123,00”。我使用的是NSNumberFormatter。 代码是:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setGroupingSize:3];
[numberFormatter setGroupingSeparator:@"."];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setMaximumFractionDigits:12];

NSNumber *num = [NSNumber numberWithDouble:result];

NSString *formattedString = [numberFormatter stringFromNumber:num]; 

但它似乎不起作用。它给出的结果如“266.482107256796”。知道为什么结果不是“266.482,107,256,796”?

2 个答案:

答案 0 :(得分:0)

试试这个:

[numberFormatter setDecimalSeparator:@","];

答案 1 :(得分:0)

分组分隔符用于分隔数字的整数部分中的数字,并且在小数部分中未使用。没有内置的方法来实现这种效果。如果您只支持十进制数字,则可以手动解析格式化字符串,并在每个3个字符后插入一个逗号,从小数点分隔符开始。

NSMutableString *s = [NSMutableString stringWithString: formattedString];
NSUInteger decimalSeparatorLocation = [s rangeOfString: @"."].location;
if (decimalSeparatorLocation != NSNotFound) {
    for (NSUInteger i = decimalSeparatorLocation + 4; i + 1 < [s length]; i += 4)
        [s insertString: @"," atIndex: i];
}

警告:此代码在iPad上输入(c)。