數字處理系統1.0 (Objective-C)

代碼地址

  • 版本 1.0
  • 語言: Objective-C

使用

兩個步驟:

1
2
1. 設置保留的小數後位置,預設為2位
2. 轉換成字符串

例子

1
2
3
4
5
6
7
保留3位小數
[[ZeRoNumberSystem sharedNumberSystem] setDecimalPlaces:3];

返回字符串
[[ZeRoNumberSystem sharedNumberSystem] convertToStringByInteger:1000];

結果: 1.000K

實現

我把實現分成了5個步驟:

  1. 傳入數值 (2423)
  2. 數值轉成字符 (2423)
  3. 取得字符長度 (4)
  4. 字符長度/3 (每3個數字則改變一次單位符號)
  5. (1) 商: 單位數 (4/3=1)
    (2) 餘數: 需要取頭位數 (4%3=1)
    (3) 結果: 2.42K

我事先加入了一個數組(存儲單位的數組),以商的值去取出來就可以了。

後來發現,由於每3個位(例如3),
除以3的時候,餘數會變成0,單位數也不对,
所以我再加入了一個判斷,判斷如果餘數為0時,單位數-1,餘數變為3。
(感覺这樣有點強硬的去實現功能了…但我也暫時想不到其它想法)

其它

暫只支持傳入數值(NSInteger),所以存在如果數值超过NSInteger能表示的範圍時,就會有溢出的問題。日後會更新到支持傳入String,能無上限的處理數值。