一个数字金额转大写金额的方法
String fraction[] = {"角", "分"};
String digit[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
在取角和分时是如下一行:
s += (digit[(int)(Math.floor(n * 10 * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", "");
但现在又一个案例,数字金额是2113826.01,转成大写金额后1分钱不见了
原因是这一行在计算时出现了:2113826.01*100=2.1138260099999997*10^8
本来是1的那一位变成了0
如何避免这种情况?
------解决思路----------------------
用Bigdecimal类的试试看吧