带编号的NSNumber

时间:2012-01-26 19:55:55

标签: iphone ios nsnumber nsnumberformatter

也许这是一个愚蠢的答案,但我对ios很新..我必须在我的应用程序中以特定的方式显示一个数字。目前,我有从NSString中的服务收到的数字。但是,例如如果我有一个号码:123456789,我需要在标签上显示为123.456.789 ..谁知道有没有办法做到这一点?

编辑:添加ios和iphone标签

3 个答案:

答案 0 :(得分:5)

使用NSNumberFormatter

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *formattedOutput = [formatter stringFromNumber:[attributesDict objectForKey:NSFileSystemFreeSize]];
NSLog(@"System free space: %@", formattedOutput);

如果您的号码首先以字符串形式出现,则您需要先使用NSString的{​​{1}}方法输入一个数字:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/intValue

答案 1 :(得分:3)

[NSString localizedStringWithFormat:@"%@", myNumber];

答案 2 :(得分:0)

这对我有用:

NSNumberFormatter *numFormatter = [NSNumberFormatter new];
[numFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"fr_US"]];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numFormatter setUsesGroupingSeparator:YES];
[numFormatter setGroupingSeparator:@","];
[numFormatter setGroupingSize:3];
NSString * newString =  [numFormatter stringFromNumber:[NSNumber numberWithDouble:43423423423242]];