涉及数学的方法给出与计算器不同的答案
Method involving math giving different answer than calculator
我是 java 的新手,所以请多多包涵。我正在尝试从游戏总数中获取获胜百分比,而我正在做的事情还差得远。我获取百分比的方法如下:
public double winPercentage(int wins, int total)
{
return (wins % total) * 1.00;
}
如果我在 254 场比赛中赢了 52 场,我的答案是 52.0,使用我的计算器,同样的答案是 20.47,假设 wins/total*100。如果我将模数切换为 / 我不断得到 0.0
我尝试了不同小数位和运算顺序的变体。我似乎找不到匹配的计算器和方法。
wins % total
中的百分号与计算百分比无关。
要计算 Java 中的百分比,您可以编写
return 100.0 * wins / total;
在这里,100.0
有双重用途:
- 它将结果重新调整为百分点;
- 它将后续除法转换为浮点除法(没有它是 整数 除法,当
wins < total
时总是返回零)。
- Java 使用 % 作为模运算符,因此它总是 return 余数作为结果而不是百分比。
- 如果我们用整数除以整数,那么结果将不会像百分比函数那样精确。例如。如果我们尝试将 52 除以 254,则对于一个不是 0.2047 的整数,结果将为 0,因为整数只能容纳完整的数字。因此,要获得百分比,您可以使用 double/float 作为参数数据类型,如下所示,而不是整数。
public double winPercentage(double wins, double total) {
return wins / total * 100;
}
我是 java 的新手,所以请多多包涵。我正在尝试从游戏总数中获取获胜百分比,而我正在做的事情还差得远。我获取百分比的方法如下:
public double winPercentage(int wins, int total)
{
return (wins % total) * 1.00;
}
如果我在 254 场比赛中赢了 52 场,我的答案是 52.0,使用我的计算器,同样的答案是 20.47,假设 wins/total*100。如果我将模数切换为 / 我不断得到 0.0
我尝试了不同小数位和运算顺序的变体。我似乎找不到匹配的计算器和方法。
wins % total
中的百分号与计算百分比无关。
要计算 Java 中的百分比,您可以编写
return 100.0 * wins / total;
在这里,100.0
有双重用途:
- 它将结果重新调整为百分点;
- 它将后续除法转换为浮点除法(没有它是 整数 除法,当
wins < total
时总是返回零)。
- Java 使用 % 作为模运算符,因此它总是 return 余数作为结果而不是百分比。
- 如果我们用整数除以整数,那么结果将不会像百分比函数那样精确。例如。如果我们尝试将 52 除以 254,则对于一个不是 0.2047 的整数,结果将为 0,因为整数只能容纳完整的数字。因此,要获得百分比,您可以使用 double/float 作为参数数据类型,如下所示,而不是整数。
public double winPercentage(double wins, double total) {
return wins / total * 100;
}