1
我已經使用了一個函數來使像123456這樣的數字看起來像123.456k。不過,我希望該函數只有前兩位小數。所以123456會喜歡123.46k。功能如下所示:減少數字格式化器中的位數Objective-C
- (NSString*)numberWithShortcut:(NSNumber*)number
{
unsigned long long value = [number longLongValue];
NSUInteger index = 0;
double dvalue = (double)value;
NSArray *suffix = @[ @"", @"K", @"M", @"B", @"T", @"P", @"E" ];
while ((value /= 1000) && ++index) dvalue /= 1000;
NSString *svalue = [NSString stringWithFormat:@"%@%@",[NSNumber numberWithDouble:dvalue], [suffix objectAtIndex:index]];
NSLog(svalue);
return svalue;
}
不要用'%@'格式化'NSNumber'。不適合不同地區的不同用戶。使用'NSNumberFormatter'。您也可以使用它來指定所需的小數位數。 – rmaddy 2014-11-01 22:58:28
更好的方法是使用'NSByteCountFormatter'並消除所有自己的邏輯來添加正確的後綴。 – rmaddy 2014-11-01 22:59:18
「公斤」的正確後綴是「k」,而不是「K」。 「千兆」不應該是「G」嗎? – rmaddy 2014-11-01 22:59:55