当前位置: 代码迷 >> J2EE >> 数值计算后自动转为科学计数法出现误差解决办法
  详细解决方案

数值计算后自动转为科学计数法出现误差解决办法

热度:101   发布时间:2016-04-17 23:13:20.0
数值计算后自动转为科学计数法出现误差
一个数字金额转大写金额的方法
        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类的试试看吧
  相关解决方案