2013-07-28 2 views
0

Я работаю над приложением, и я хочу отформатировать число, такое как 1,000,000 в виде короткой строки.Формат NSNumber как __ k/M/B

Некоторые примеры будут:

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

Я думал, что лучший способ сделать это будет с помощью NSNumberFormatter или просто округлять тогда подсчет числа «0» 's. У любого есть пример использования 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 
Смежные вопросы