Java:试图获得整数的百分比,如何整理?

时间:2012-03-27 23:31:26

标签: java casting rounding

我有两个整数值,x和total。我试图找到总的x的百分比。这就是我现在正在做的事情:

percentage =(int)((x * 100)/ total);

百分比必须是整数。当我这样做时,它总是向下舍入小数点。是否有一种简单的方法可以将百分比计算为整数,如果小数点是.5或更高,它会向上舍入?

7 个答案:

答案 0 :(得分:14)

使用Math.round(x * 100.0/total)。但请注意,这会返回一个长整数,因此需要对int进行简单的转换。

我把100.0强制它在舍入之前使用浮点运算。

答案 1 :(得分:3)

(int)Math.round(100.0 / total * x);

应该有用。

答案 2 :(得分:2)

只需使用Math.round(100.0 / total * x);

即可

答案 3 :(得分:1)

为什么不使用Math.round((x*100)/total);

答案 4 :(得分:1)

在Java中使用标准数学库。

percentage = Math.round(*your expression here*);

答案 5 :(得分:1)

您可以为正值添加0.5(圆形到无效)

percentage = (int)(x * 100.0 / total + 0.5);

这比使用Math.round更快,但可能不那么清楚。

BTW:100.0 / total * x可能不会给出与x * 100.0 / total相同的结果,因为评估顺序可以更改浮点结果。

答案 6 :(得分:0)

最简单的方法 -

问题:如何舍入十进制数的值(例如:int n = 4.57)

答案:Math.round(n);

输出:5。