今天换算律师打官司金额,用到了小写金额转化为大写汉字的问题,这里把具体思路分析一下
1、首先判断输入数值正负问题,
2、其次有小数点部分需要处理,将数值每次乘以10进行拆分,乘10——%10——结果为角位数值,分位数值同样方法得出,依次将所得数值后面加角、分,
将所有用到的大写数字都定义出来,用来拼接;
循环角、分,按照乘10%10的步骤对数值进行判断;
整数部分则角和分位无值,替换为整。(s = s || '整'; )
3、接下来整数部分相对简单,虽然处理的位数多,但只需要不停的%10就可以,代码如下;
整数部分%10余n ,便在digit里循环n次,得到对应数字n的大写汉字,如果轮询到零就replace将零剪切,最后将得到的小数部位和整数部位进行拼接;
4、最后一步其实是第一步中提到的负数问题,可归为一步;
完整代码贴一下:
好了!