Ios 使用NSNumberFormatter将数字转换为格式

Ios 使用NSNumberFormatter将数字转换为格式,ios,number-formatting,nsnumberformatter,Ios,Number Formatting,Nsnumberformatter,如何使用NSNumberFormatter将数字4273095782转换为数字4273095782 我用这个二极管,但没有得到它 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = kCFNumberFormatterDecimalStyle; formatter.maximumIntegerDigits = 3; formatter.minimumFractionDig

如何使用NSNumberFormatter将数字4273095782转换为数字4273095782

我用这个二极管,但没有得到它

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = kCFNumberFormatterDecimalStyle;
formatter.maximumIntegerDigits = 3;
formatter.minimumFractionDigits = 3;
formatter.groupingSeparator = @" ";
formatter.decimalSeparator = @" ";
NSString *formattedNumber = [formatter stringFromNumber:p];

试试这个小操作:

NSNumber *p = [NSNumber numberWithInt:123456789];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = kCFNumberFormatterDecimalStyle;
//     formatter.maximumIntegerDigits = 10;
//     formatter.minimumFractionDigits = 3;
formatter.groupingSeparator = @" ";
formatter.decimalSeparator = @" ";
NSString *formattedNumber = [formatter stringFromNumber:p];

NSLog(@"Formatted:%@", formattedNumber);
希望这对你有帮助。在这种情况下,不需要限制整数位数:)


结果应该是:
2014-11-27 11:49:39.855 NSNumberFormatter[2399:789883]格式化:123 456 789

您需要使用两个属性:
setGroupingSize:
用于最后3个数字,而
setSecondaryGroupingSize:
用于所有其他数字:

整个实施过程如下所示:

NSInteger integer = 4273095782;
NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSize:3];
[formatter setSecondaryGroupingSize:3];
[formatter setGroupingSeparator:@" "];
NSString * threeSeparated =  [formatter stringFromNumber:@(integer)];
NSLog(@"threeSeparated: %@", threeSeparated);

输出:4273095782

带有
formatter.groupingSeparator=@”;[格式化程序setGroupingSize:3],应该可以。注释掉整数位数限制。。。这就够了:)@Larme:不,光靠这个是不行的。。。他还需要使用
setSecondaryGroupingSize:3
。看我的答案。你显示的输出碰巧不是我的Xcode6@AnoopVaidya对这个巨大的数字使用long同样适用于我的代码。