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

第一个金额计算

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值