我正在尝试格式化数字,例如“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”?
答案 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)。