-1

在尝试计算一些百分比时,我得到了一些奇怪的结果。如果我的值为 1,最大值为 2,我应该得到 50% 作为结果(因为 1 是 2 的 50%),但是我得到的结果是 1%。这是我的代码:

int percent = ( runningMins / goal.getGoalMins() )  * 100;
System.out.println(runningMins +", " + goal.getGoalMins() + ", progress: " + percent);

runningMins = 1 和 goal.getMins = 1 时的结果:

1, 1, progress: 100

runningMins = 1 和 goal.getMins = 2 时的结果:

1, 2, progress: 1

runningMins = 1 和 goal.getMins = 4:

1, 4, progress: 1

runningMins = 1 和 goal.getMins = 8:

1, 8, progress: 1

我在这里做错了什么?

4

3 回答 3

2

你可以试试:

int percent = ( (float)runningMins / goal.getGoalMins() )  * 100;

或者更好

int percent = ( 100 * runningMins ) / goal.getGoalMins()

因为除以整数不能给出除 0 或 1 以外的东西...

于 2013-10-07T10:33:03.030 回答
0

试试这个方法

float percent = ( runningMins /(float) goal.getGoalMins() )  * 100;
于 2013-10-07T10:37:46.950 回答
0
 int percent = ( (float)(runningMins /goal.getGoalMins()) )  * 100;

用于计算百分比的 Java 算法

于 2013-10-07T10:36:13.490 回答