js金额分拆导致数据丢失解决方案

最近在项目,有一个功能是自动分拆金额,然后根据每个金额来计算它的税额和不含税额,

税额计算公式:总金额*税率/(1+税率)

不含税额=总金额-税额。


比如一个234569.87的金额,20000进行拆分,可以拆成11个20000和一个14569.87.

然后对每个20000进行税额计算,最后对14569.87进行税额计算,最后校验的时候需要总

的总的不含税额+总的税额=总金额,由于在拆分的时候每次计算税额都是四舍五入,比如

20000的按3%的税率来计算的税额是582.52427184,精确到小数点后两位就是582.52,最后的0.00427184

就被丢失掉,导致分拆2次之后丢失的金额是0.0084,这样核对总数的时候就会对不上。

这个问题的解决办法是:

     在分拆的时候需要记录一个不做四舍五入的税额,一个做了四舍五入的税额的总值,

最后用没有四舍五入的总税额减去四舍五入的总税额来计算出由于分拆丢失的差额,最后

把差额加到最后的一笔税额上,这样就能使得我们的总数相等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值