简介
最近在项目中用到了NSNumberFormatter,google了很久都没有找到比较好的资料,很多关于NSNumberFormatter的介绍都是很离散的,所以自己只能苦逼的去看文档了,花费了一晚上把NSNumberFormatter的大多数属性都试了一遍。再次自己整理一下自己的成果,最后附上demo。
属性介绍
样式篇
//四舍五入的整数
NSNumberFormatterNoStyle
//小数形式
NSNumberFormatterDecimalStyle
注意: 不做任何处理大多数情况下默认显示小数点后的3位
12345.7181 显示 12345.718 56.0101则显示成 56.01
56.0006则显示成 56 56.0106则显示成 56.01 56.0116则显示成 56.012 官方文档在中说的1234.5678显示1234.5678,我试过很多遍都是1234.568,这是我存在的一个疑问。(如果有知道的原因的,可以在评论中告诉我)
//本地化(货币形式数字前面加$)
NSNumberFormatterCurrencyStyle
// 百分数形式
NSNumberFormatterPercentStyle
// 科学计数方式
NSNumberFormatterScientificStyle
//朗读形式
numberSpellOutStyleStr
前后缀篇
//添加前缀
positivePrefix
//添加后缀
positiveSuffix
//如果是负数的时候的前缀 用这个字符串代替默认的"-"号
negativePrefix
//接收器用作负值的后缀的字符串
negativeSuffix
更改原始符号篇
//接收器用来更改百分比符号的字符串(默认是"%")
percentSymbol
//接收器用来更改千分比符号的字符串(默认是"‰")
perMillSymbol
//接收器用来更改减号的字符串(默认是"-")
minusSign
//接收器用来更改加号的字符串(默认是"+")
plusSign
//接收器用来更改指数符号的字符串(默认是"E")
exponentSymbol
//更改货币分组分割符号(默认是",")
currencyGroupingSeparator
注:上面属性只在numberStyle是 kCFNumberFormatterCurrencyStyle下有用
//更改小数点样式(默认是".")
decimalSeparator
//更改数值是0的样式(千万别误解成将数据中的带有的0全部更改仅仅只有数值的0的时候)
zeroSymbol
分割尺寸篇
//设置组大小
groupingSize
例:数字分割的尺寸 就比如数字越多1234 为了方便就分割开 1,234(这个分割的大小是3) 从后往前数的。
//设置第二组大小
secondaryGroupingSize
例:一些区域允许较大的数字的另一个分组大小的规范。例如,有些地方可能代表一个数字如61,242,378.46(在美国)
作为6,12, 42378.46。在这种情况下,二次分组大小(覆盖小数点最远的数字组)为2
注:小数点前的(大于零的部分),先从右往左分割groupSize的,如果剩余的在按照secondaryGroupingSize的大小来分。例如 123456.789 如果groupingSize= 4 ,secondaryGroupingSize = 2,则表现结果就是
12,3456.789。
格式宽度篇
// 格式宽度
formatWidth
例 123,45.6 格式宽度就是 8
//填充符 格式宽度不够时候用的填充
paddingCharacter
//填充符的位置
paddingPosition
注:以上三个属性常常连接在一起用的
舍入篇
//舍入方式
roundingMode
//舍入值
roundingIncrement
例: 舍入方式是kCFNumberFormatterRoundHalfUp 舍入值为1 123456.58 变为 123457
//整数最少几位
minimumIntegerDigits
//整数最多几位
maximumIntegerDigits
//小数位最多几位数
maximumFractionDigits
//小数位最少几位数
minimumFractionDigits
//最大值
maximum
//最小值
minimum
//最少有效数字的位数
minimumSignificantDigits
//最多有效数字的位数
maximumSignificantDigits