项目中遇到的问题解决过程

第一个金额计算

1 浮点数运算我一直知道是不精确的,如果使用double进行金额计算必然导致计算结果不准确。

现在项目要做一个报销单的模块,涉及到了金额计算。float 8位,double17位左右 ,超过这个位数,计算的

结果不可预测。所以我后台Java采用BigDecimal运算类,BigDecimal在使用的过程中有很多源码上的使用陷阱,不一一叙述。后台保证了计算的准确性。前台Js运算的正确性呢?前台parseFloat parseInt 都有位数限制,大概5,6位就无法表达了,此时从网上搜索到Number,可以表达的位数达到10几位,够用。按照浮点数的原理机制,JS计算时先吧double转为String,移位为Number, 计算,完后再移动小数位转为浮点数。

如果超出指定位数,那只好采用Js的大数运算了,跟BigDecimal原理一样。然后从网上搜索到Js大数运算的工具代码。拷贝过来直接使用,完事。 

猜你喜欢

转载自hp20091023.iteye.com/blog/2413166
今日推荐