Java数学问题 - 投票数到百分比

Jon*_*ale -2 java math

private static int votePercentage() {
    int players = 0;
    for (int p = 0; h < PLAYERS; p++) {
        if (playersOnline[p] != null) {
            players++;
        }
    }
    int votes = voters.size();
    int avg = (votes / players);
    return (avg * 100);
}
Run Code Online (Sandbox Code Playgroud)

投票:1名玩家:2回归:0

投票:2名玩家:2回归:100

问题

问题是,返回的nubmer不是int,并且是1/2因为1/2 = 0.5.因此它总是会返回0,除非玩家的投票分数不是双倍而且是int.

基本上我想从所有在线玩家中返回投票用户的百分比.

这有解决方案吗?也许是java类或内置函数?

Doo*_*nob 5

你需要使用float(记得改变函数的返回类型!):

float avg = ((float)votes / players);
Run Code Online (Sandbox Code Playgroud)

int只能存储整数; 它不能存储小数.只有floatdouble(双精度)可以存储十进制数.

你也可以切换你的公式:

return ((votes * 100) / players);
Run Code Online (Sandbox Code Playgroud)

请注意,这将向下舍入到下一个整数.