版本 1.0
語言: Objective-C
使用
兩個步驟:
1. 設置保留的小數後位置,預設為2位
2. 轉換成字符串
例子
保留3位小數
[[ZeRoNumberSystem sharedNumberSystem] setDecimalPlaces:3];
返回字符串
[[ZeRoNumberSystem sharedNumberSystem] convertToStringByInteger:1000];
結果: 1.000K
實現
我把實現分成了5個步驟:
- 傳入數值 (2423)
- 數值轉成字符 (2423)
- 取得字符長度 (4)
- 字符長度/3 (每3個數字則改變一次單位符號)
- (1) 商: 單位數 (4/3=1)
(2) 餘數: 需要取頭位數 (4%3=1)
(3) 結果: 2.42K
我事先加入了一個數組(存儲單位的數組),以商的值去取出來就可以了。
後來發現,由於每3個位(例如3),
除以3的時候,餘數會變成0,單位數也不对,
所以我再加入了一個判斷,判斷如果餘數為0時,單位數-1,餘數變為3。
(感覺这樣有點強硬的去實現功能了...但我也暫時想不到其它想法)
其它
暫只支持傳入數值(NSInteger),所以存在如果數值超过NSInteger能表示的範圍時,就會有溢出的問題。日後會更新到支持傳入String,能無上限的處理數值。