簡(jiǎn)介
最近在項(xiàng)目中用到了NSNumberFormatter膀哲,google了很久都沒有找到比較好的資料跃捣,很多關(guān)于NSNumberFormatter的介紹都是很離散的,所以自己只能苦逼的去看文檔了,花費(fèi)了一晚上把NSNumberFormatter的大多數(shù)屬性都試了一遍坯汤。再次自己整理一下自己的成果,最后附上demo怠蹂。
屬性介紹
樣式篇
//四舍五入的整數(shù)
NSNumberFormatterNoStyle
//小數(shù)形式
NSNumberFormatterDecimalStyle
注意: 不做任何處理大多數(shù)情況下默認(rèn)顯示小數(shù)點(diǎn)后的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善延,這是我存在的一個(gè)疑問。(如果有知道的原因的城侧,可以在評(píng)論中告訴我)
//本地化(貨幣形式數(shù)字前面加$)
NSNumberFormatterCurrencyStyle
// 百分?jǐn)?shù)形式
NSNumberFormatterPercentStyle
// 科學(xué)計(jì)數(shù)方式
NSNumberFormatterScientificStyle
//朗讀形式
numberSpellOutStyleStr
前后綴篇
//添加前綴
positivePrefix
//添加后綴
positiveSuffix
//如果是負(fù)數(shù)的時(shí)候的前綴 用這個(gè)字符串代替默認(rèn)的"-"號(hào)
negativePrefix
//接收器用作負(fù)值的后綴的字符串
negativeSuffix
更改原始符號(hào)篇
//接收器用來更改百分比符號(hào)的字符串(默認(rèn)是"%")
percentSymbol
//接收器用來更改千分比符號(hào)的字符串(默認(rèn)是"‰")
perMillSymbol
//接收器用來更改減號(hào)的字符串(默認(rèn)是"-")
minusSign
//接收器用來更改加號(hào)的字符串(默認(rèn)是"+")
plusSign
//接收器用來更改指數(shù)符號(hào)的字符串(默認(rèn)是"E")
exponentSymbol
//更改貨幣分組分割符號(hào)(默認(rèn)是",")
currencyGroupingSeparator
注:上面屬性只在numberStyle是 kCFNumberFormatterCurrencyStyle下有用
//更改小數(shù)點(diǎn)樣式(默認(rèn)是".")
decimalSeparator
//更改數(shù)值是0的樣式(千萬別誤解成將數(shù)據(jù)中的帶有的0全部更改僅僅只有數(shù)值的0的時(shí)候)
zeroSymbol
分割尺寸篇
//設(shè)置組大小
groupingSize
例:數(shù)字分割的尺寸 就比如數(shù)字越多1234 為了方便就分割開 1,234(這個(gè)分割的大小是3) 從后往前數(shù)的易遣。
//設(shè)置第二組大小
secondaryGroupingSize
例:一些區(qū)域允許較大的數(shù)字的另一個(gè)分組大小的規(guī)范。例如嫌佑,有些地方可能代表一個(gè)數(shù)字如61,242,378.46(在美國(guó))
作為6,12, 42378.46豆茫。在這種情況下,二次分組大形菀 (覆蓋小數(shù)點(diǎn)最遠(yuǎn)的數(shù)字組)為2
注:小數(shù)點(diǎn)前的(大于零的部分)揩魂,先從右往左分割groupSize的,如果剩余的在按照secondaryGroupingSize的大小來分炮温。例如 123456.789 如果groupingSize= 4 肤京,secondaryGroupingSize = 2,則表現(xiàn)結(jié)果就是
12,3456.789茅特。
格式寬度篇
// 格式寬度
formatWidth
例 123,45.6 格式寬度就是 8
//填充符 格式寬度不夠時(shí)候用的填充
paddingCharacter
//填充符的位置
paddingPosition
注:以上三個(gè)屬性常常連接在一起用的
舍入篇
//舍入方式
roundingMode
//舍入值
roundingIncrement
例: 舍入方式是kCFNumberFormatterRoundHalfUp 舍入值為1 123456.58 變?yōu)?123457
//整數(shù)最少幾位
minimumIntegerDigits
//整數(shù)最多幾位
maximumIntegerDigits
//小數(shù)位最多幾位數(shù)
maximumFractionDigits
//小數(shù)位最少幾位數(shù)
minimumFractionDigits
//最大值
maximum
//最小值
minimum
//最少有效數(shù)字的位數(shù)
minimumSignificantDigits
//最多有效數(shù)字的位數(shù)
maximumSignificantDigits