阿拉伯数字转换为中文的数字,比如3
转为三
,13
转为十三
本来项目中遇到的基本上都是十以下的数字,想着直接搞个字典,到时候对应取值就OK了,可是到后来感觉不太稳妥,如果这个数字超过十的话,那样的场面将会异常尴尬的。后来找到一种方法,才知道原来框架中已经写好的有这些东西了。代码如下:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = kCFNumberFormatterRoundHalfDown;
NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt: testNum]];
是不是感觉特别的熟悉啊,没错,每次我们将日期字符串转换为日期,或者日期转换为字符串的时候也是用类似的,不过日期用的是NSDateFormatter
,用法类似,就不过多描述了,唯一值得一提的是formatter.numberStyle = kCFNumberFormatterRoundHalfDown;
这个numberStyle
的值是一个枚举,具体值如下:
typedef CF_ENUM(CFIndex, CFNumberFormatterRoundingMode) {
kCFNumberFormatterRoundCeiling = 0, // 四舍五入输出
kCFNumberFormatterRoundFloor = 1 , // 保留小数输出
kCFNumberFormatterRoundDown = 2, // 加上了人民币标志,原值输出
kCFNumberFormatterRoundUp = 3, // 本身数值乘以100后用百分号表示输出
kCFNumberFormatterRoundHalfEven = 4,
kCFNumberFormatterRoundHalfDown = 5,// 原值的中文表示输出
kCFNumberFormatterRoundHalfUp = 6// 原值中文表示
};