数字列表中的百分比

时间:2018-09-12 12:40:43

标签: java

我有一个数字列表(例如):

98,
77,
55,
11

总价值为:241

我尝试使用以下方法计算百分比:

(int) (((double) quantity / totalQuantity) * 100);

(大多数情况下)这有效,但是有时合并的百分比不是100%。我尝试使用Math.ceilfloor,但仍然遇到此问题。

编辑:

让我提供一些背景知识,因为如果我的情况是计算数字,那您是对的: 我的装运中有物品总数241,并且有4种物品(98, 77, 55, 11)。我需要向用户显示每批货物的百分比。

谢谢

2 个答案:

答案 0 :(得分:6)

这是正常现象,例如使用数字5、5、5,您将获得33%的三倍,总计为99%。

这里的问题是舍入和加法不可互换。

答案 1 :(得分:0)

问题与数学有关,我们进行除法运算时不会停止(重复数字),例如三个2 + 1 + 1的小数平均值为4/3,但其十进制的平均数不会停止,所以当您添加小数点1.33 + 1.33 + 1.33时,您不会得到4而不是3.99,因为我们无法执行无穷次的除法,我们会停在小数点后的特定位数结果,平均值可能不完全等于总数。