成本分摊精确度的问题

yongheng1540 2007-10-30 09:30:33
关于成本核算的问题:比如,100块钱,材料a占2.4,材料b占3.4,材料c占1.7,如后计算a分摊的钱x为:100*2.4/(2.4+3.4+1.7),b分摊的钱y为100*3.4/(2.4+3.4+1.7),材料c分摊的钱z为100*1.7/(2.4+3.4+1.7),但最后由于精确度的原因,x+y+z!=100,学校里学过数值分析,貌似可以用里面算法,不过早忘了,请问各位大侠这个问题怎么解决?
...全文
184 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongheng1540 2007-11-07
  • 打赏
  • 举报
回复
是呀,如果是分配工资,可以循环着让大家轮流占误差的部分;但是如果是成本分摊,要求误差不能超过1分钱,则上面的算法就无法保证做到这一点了
kaishui_gu 2007-11-02
  • 打赏
  • 举报
回复
不可能完全公平,但是可以相对公平;要先根据实际问题来选择一种平分标准;
然后才考虑怎么实现,就像我上面说的,不是开玩笑,也是一种标准,只是不满足x+y+z=100而已;
(我猜的)像银行,很多除不尽的,应该都是他拿走了。^-^
wyl1220 2007-11-02
  • 打赏
  • 举报
回复
我也遇到过这种问题,最典型的就是100分3人平分,如果都需要保留证书位,那么怎么也分不好。
medie2005 2007-11-01
  • 打赏
  • 举报
回复
你没懂我的意思。
直接用浮点运算肯定是有误差的。
我的意思是:中间运算以及结果均用分数来表示,也就是:原来的小数四则运算变成分数的四则运算。
如果你想要结果用小数表示,而且又想使x+y+z=100,那就条件地对小数位进行舍取。

另外,你给的例子,不会出现x+y+z=!100的情况。
kaishui_gu 2007-11-01
  • 打赏
  • 举报
回复
这种东西怎么分都不公平的,全部取整,多的就是我的
HW121 2007-11-01
  • 打赏
  • 举报
回复
x=100*2.4/(2.4+3.4+1.7)
y=100*3.4/(2.4+3.4+1.7)
z=100-x-y

x=(int)(100*100*2.4/(2.4+3.4+1.7)+0.5)=3200分 = 32元
y=(int)(100*100*3.4/(2.4+3.4+1.7)+0.5)=4533分 = 45元3角3分
z=(int)(100*100*1.7/(2.4+3.4+1.7)+0.5)=2267分 = 22元6角7分
medie2005 2007-10-31
  • 打赏
  • 举报
回复
用分数来算:将2.4、3.4、1.7换为分数12/5、17/5、17/10。
yongheng1540 2007-10-31
  • 打赏
  • 举报
回复
你没继续往下算,最后分子,分母约分,还是除不尽的,误差还是存在

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧