人与人之间的分数除以一分钱?

时间:2012-04-13 09:43:32

标签: c# math currency

我有$9558.99金额,我需要在4人之间分配:40%,40%,10%,10%。 (这只是问题浮出水面的一个例子)

当我计算分数时,我得到以下结果,它们都包含一分钱的分数,这是不好的,因为显然我不能给一个人半分钱。

40%  $3823.5960
40%  $3823.5960
10%  $955.8990
10%  $955.8990
SUM  $9558.99

如果我向上看,我会得到一分钱:

40%  $3823.60
40%  $3823.60
10%  $955.90
10%  $955.90
SUM  $9559.00 <-- 1 penny over

如果我向下舍入,我会减少3便士(再次没有惊喜):

40%  $3823.59
40%  $3823.59
10%  $955.89
10%  $955.89
SUM  $9558.96 <-- 3 pennies under

所以我的问题是根据百分比公平分配金额的正确方法是什么?

编辑:这可能不是一个编程问题,但我认为它无论如何都与程序员有关。

2 个答案:

答案 0 :(得分:3)

向上舍入,并随机减去过多的便士。

要随机减去,请选择n随机人员n =剩余便士数量。

直观地说,我认为在这种情况下n不会大于3。

(或者,向下舍入并随机分散剩余的便士)。

答案 1 :(得分:1)

无论你使用哪种舍入方法,都会有人失败。

这是另一种建议

A人占总数的40% - 最接近的便士 人B得到剩下的40/60 - 最接近的便士 人物C得到剩下的10/20 - 最接近的便士 人D得到了剩下的东西。

A获得$ 3823.60
B获得$ 3828.59
C获得$ 955.90
D得到$ 955.90