最近在项目,有一个功能是自动分拆金额,然后根据每个金额来计算它的税额和不含税额,
税额计算公式:总金额*税率/(1+税率)
不含税额=总金额-税额。
比如一个234569.87的金额,20000进行拆分,可以拆成11个20000和一个14569.87.
然后对每个20000进行税额计算,最后对14569.87进行税额计算,最后校验的时候需要总
的总的不含税额+总的税额=总金额,由于在拆分的时候每次计算税额都是四舍五入,比如
20000的按3%的税率来计算的税额是582.52427184,精确到小数点后两位就是582.52,最后的0.00427184
就被丢失掉,导致分拆2次之后丢失的金额是0.0084,这样核对总数的时候就会对不上。
这个问题的解决办法是:
在分拆的时候需要记录一个不做四舍五入的税额,一个做了四舍五入的税额的总值,
最后用没有四舍五入的总税额减去四舍五入的总税额来计算出由于分拆丢失的差额,最后
把差额加到最后的一笔税额上,这样就能使得我们的总数相等。