日期:2014-05-18  浏览次数:20567 次

系数分摊,精度问题 邹大哥光临指导不胜感激
我要将基数(整数),按照实体的一个属性(两位小数)。例如:将全国的税收按照每一个省的面积(保留2位小数)分摊到每一个省。
也就是  
基数*a1/A,其中A=   ∑a.
这样的话,分摊的结果之和,就不等于基数。相差的就算是1分钱,也是一个大问题。好像这个结果和a1......an的精度没有关系。当前假定a1...an保留两位小数。
我想这也算一个经典问题,希望不吝赐教!



------解决方案--------------------
把数据帖出来看看
------解决方案--------------------
我一般采用递减均分的办法(下一个要均分的值为总量减前一个均分后的值),反正总得有人占便宜有人吃亏,哪怕是一分钱.
------解决方案--------------------
说个可以操作的思路,
1 计算∑a,记作A
2 取出一个ai,计算round(基数*ai/A,2),作为ai的结果,记作bi
3 基数=基数-bi,A=A-ai
4 如果尚有未计算的ai,循环2-4