2013-07-28 94 views
0

我正在處理一個應用程序,並且我想將一個數字(例如1,000,000)格式化爲一個短字符串。將NSNumber格式化爲__ k/M/B

一些例子是:

1000 => "1k" 
50000 => "50k" 
83952 => "84k" 
1000000 => "1m" 
1000000000 => "1b" 

我想做到最好的方式,這將被使用NSNumberFormatter或只是四捨五入然後計數的「0」的個數。任何人都有以這種方式使用NSNumberFormatter或任何資源入門的例子。

+1

這不是重複。這不是指文件大小。 –

回答

0

您需要繼承NSNumberFormatter:

例子:

@implementation LTNumberFormatter 

@synthesize abbreviationForThousands; 
@synthesize abbreviationForMillions; 
@synthesize abbreviationForBillions; 

-(NSString*)stringFromNumber:(NSNumber*)number 
{ 
if (! (abbreviationForThousands || abbreviationForMillions || abbreviationForBillions)) 
{ 
    return [super stringFromNumber:number]; 
} 

double d = [number doubleValue]; 
if (abbreviationForBillions && d > 1000000000) 
{ 
    return [NSString stringWithFormat:@"%@ %@", [super stringFromNumber:[NSNumber numberWithDouble:d/1000000000]], abbreviationForBillions]; 
} 
if (abbreviationForMillions && d > 1000000) 
{ 
    return [NSString stringWithFormat:@"%@ %@", [super stringFromNumber:[NSNumber numberWithDouble:d/1000000]], abbreviationForMillions]; 
} 
if (abbreviationForThousands && d > 1000) 
{ 
    return [NSString stringWithFormat:@"%@ %@", [super stringFromNumber:[NSNumber numberWithDouble:d/1000]], abbreviationForThousands]; 
} 
    return [super stringFromNumber:number]; 
} 

@end 
相關問題