我想将NSDecimalNumber
的值转换为字符串,其中:
5到6位数字用K代表数千,有3位有效数字(例如54,321 ---> 54.3K,654,321 ---> 65.4K)
7到9位数字用M表示数百万,有3位有效数字(例如7,654,321 ----> 7.65M,987,654,321 ---> 9.88M)
10位数字及以上使用B表示数十亿,并且有3位有效数字
有关最佳方法的任何建议吗?感谢。
(看到一些类似的问题,但不是Objective-C / iOS的问题。)
答案 0 :(得分:0)
FormatterKit可以格式化位,字节,兆字节等。请参阅TTTUnitOfInformationFormatter类。
示例:
将TTTUnitOfInformationFormatter.h和TTTUnitOfInformationFormatter.m添加到您的项目中。以下示例代码将数字12345格式化为字节数:
#import "TTTUnitOfInformationFormatter.h"
NSDecimalNumber *numberOfBytes = [NSDecimalNumber
decimalNumberWithString:@"12345"];
TTTUnitOfInformationFormatter *formatter = [[TTTUnitOfInformationFormatter alloc]
init];
// Set this to NO if you want to show bits instead of bytes.
formatter.displaysInTermsOfBytes = YES;
// Set this to YES if you want 1024 bytes in a KB instead of 1000 bytes.
formatter.usesIECBinaryPrefixesForCalculation = NO;
NSString *formatted = [formatter stringFromNumber:numberOfBytes
ofUnit:TTTByte];
NSLog(@"%@", formatted);
它将打印:
12.35 KB
如果您想要“K”而不是“KB”,“B”而不是“GB”等,您仍然可以使用此课程作为起点。