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

代碼地址

版本 1.0
語言: Objective-C

使用

兩個步驟:

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

例子

保留3位小數
[[ZeRoNumberSystem sharedNumberSystem] setDecimalPlaces:3];

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

結果: 1.000K

實現

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

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

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

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

其它

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 8,409评论 3 49
  • 前言 什么是CSS预处理器 定义:CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增...
    SA_Arthur阅读 8,289评论 0 18
  • 经过一个晚上的休整,同志们在总结了第一天的经验之后继续向响沙湾方向出发(出发前就已经问好距离、线路)! 响沙湾距离...
    油油的悠悠阅读 4,007评论 0 2
  • 记得你来过 在那教室中 在哪操场上 记得你来过 在梦中 在心上 记得你是我老师
    小丑胡阅读 1,103评论 0 0
  • 有时候真的会很惊喜,当你抬头的一瞬。 很喜欢这样的地方,没有嘈杂,心里流动着安静的喜悦。 这幅盯着好久,手绘的右边...
    盲心桥阅读 1,445评论 0 0

友情链接更多精彩内容