用于转换为货币的NSNumberFormatter

时间:2014-07-16 16:57:51

标签: objective-c cocoa-touch nsnumberformatter

我需要创建一个采用整数值的NSFormatter,然后将它们发送到格式化的货币,但问题是必须添加K和M才能成千上万。 E.G:

130000 -> $130k
12000 -> $12k
10000000 ->$10M

它必须是数据类型NSNumberFormatter,因为我将使用它来设置一个带参数NSNumberFormatter的属性(我正在格式化图形的轴标签)。

1 个答案:

答案 0 :(得分:0)

NSByteCountFormatter可以提供帮助:

int number = 100000;

NSString *binaryFormatted = [NSByteCountFormatter stringFromByteCount:number countStyle:NSByteCountFormatterCountStyleDecimal];
NSLog(@"binaryFormatted: %@", binaryFormatted);

NSString *digits = [binaryFormatted substringToIndex:binaryFormatted.length-3];
NSString *units  = [binaryFormatted substringWithRange:NSMakeRange(binaryFormatted.length-2, 1)];
NSString *currencyFormatted = [NSString stringWithFormat:@"$%@%@", digits, units];

NSLog(@"currencyFormatted: %@", currencyFormatted);

NSLog输出

  

binaryFormatted:100 KB
  currencyFormatted:$ 100K