Java数学问题-投票计数到百分比 private static int votePercentage(){ 整数=0; 对于(int p=0;h

Java数学问题-投票计数到百分比 private static int votePercentage(){ 整数=0; 对于(int p=0;h,java,math,Java,Math,投票:1 球员:2名 返回:0 投票:2 球员:2名 返回:100 问题 问题是,返回的numer不是int,而是double,因为1/2=0.5。 因此,它将始终返回0,除非玩家的票数除法不是双精度且是整数 基本上,我想返回所有在线玩家中投票用户的百分比 有解决办法吗?可能是java类或内置函数?您需要使用float(记住更改函数的返回类型!): int只能存储整数;它不能存储小数。只有float和double(用于双精度)可以存储十进制数 您还可以切换公式: float avg = ((fl

投票:1 球员:2名 返回:0

投票:2 球员:2名 返回:100

问题

问题是,返回的numer不是int,而是double,因为1/2=0.5。 因此,它将始终返回0,除非玩家的票数除法不是双精度且是整数

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


有解决办法吗?可能是java类或内置函数?

您需要使用
float
(记住更改函数的返回类型!):

int
只能存储整数;它不能存储小数。只有
float
double
(用于双精度)可以存储十进制数

您还可以切换公式:

float avg = ((float)votes / players);

请注意,这将四舍五入到下一个整数。

如果确实要使用整数:

return ((votes * 100) / players);

但最好切换到
float
double
以提高精度。

返回((票数*100)/玩家)?@devnull我试过了,这不是问题所在。-1。什么是
在线玩家
投票者
,以及
玩家
?你是如何得到你打印的数字的?但最令人恼火的是,如果您的问题确实是需要
float
s而不是
int
s,那么devnull的答案就可以了。
return ((votes * 100) / players);
int avg = votes * 100 / players;
return avg;