财务大写金额换算器

今天是自己生日🎂,早起锻炼身体,一切都好!

  寒假在家,照顾孩子有余,学习iOS,老婆马上要到财务上班,对新工作有所顾忌,好几年没有接触财务工作,说让我给她找一个可以自动转换金额大小写的App,搜索了一下App Store,已有许多apps,但是还是想自己做一个,可以加入一些自己想要的东西,比如老婆喜欢的Doraemon。

需求

  1. 实现金额大写转换;
  2. 加入Doraemon等美化一下。

软件名称

  暂且叫它:大写金额(想不出来好听的名字)

开发平台及工具

  iOS + Xcode + Swift

主要功能

  1. 输入金额自动转换成对应的大写金额;
  2. 金额只有小数位只有角、分,所以这里数字小数位只能输入两位;
  3. 金额太大(千亿以上)有点难处理,应该也用不了这么大金额,索性限制输入金额的大小,最大到千亿;
  4. 模仿苹果自带计算机,在输入数字上向右滑动可以退格。

设计思路

  1. 定义一个栈来记录每次输入后显示的金额,然后从栈中读取最后一个值来更新显示到大小写Label;
  2. 大写金额的转换算法:
  • 定义3个数组,根据金额的位数来获取对应的单位,例如:1234,a[1]+b[3]+a[2]+b[2]+a[3]+b[1]+a[4]+b[0] = “壹仟贰佰叁拾肆元”;
  • 出现多个“0”时,加入判断,隐藏单位,在最后一个“0”时插入一个“零”,同时需要保证“亿、万、元”正常显示即可;
  • 后退时,清除栈中最后一个值,刷新结果显示(重新读取栈中的值来显示金额)。
    1
    2
    3
    private let a: [String] = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
    private let b: [String] = ["元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"];
    private let c: [String] = ["角", "分",];

界面设计

  iPhoneX的模拟器,截图有点儿长,下方也多了一块蓝色区域

其他

  没有购买苹果开发者账号,而自己手机调试只能有7天有效期,暂时还在研究其他办法的可行性。