Java 为什么此表达式的计算结果一直为0
下面的Java 为什么此表达式的计算结果一直为0,java,math,Java,Math,下面的value1将计算值保持为0,即使player1Disks和player2Disks都大于零且彼此不相等 int value1 = Math.round(100 * ((player1Disks - player2Disks)/(player1Disks + player2Disks)));` 以下是分别用于player1Disks和player2Disks的一些示例输入: [5,8]、[6,8]、[8,4]等 然而,所有这些都被评估为零。我遗漏了什么吗?在您介绍的三种情况下,整数除法的
value1
将计算值保持为0,即使player1Disks和player2Disks都大于零且彼此不相等
int value1 = Math.round(100 * ((player1Disks - player2Disks)/(player1Disks + player2Disks)));`
以下是分别用于player1Disks
和player2Disks
的一些示例输入:
[5,8]、[6,8]、[8,4]等
然而,所有这些都被评估为零。我遗漏了什么吗?在您介绍的三种情况下,整数除法的计算结果为
0
0*100
仍然等于0
您应该先乘以100
,然后再除以。或者最好不要使用int
第一个:-3/13=0
第二个:-2/14=0
第三个:
-4/12=0
@PM77-1这些都不是4/3
我如何编写这个表达式来获得一个整数值?假设您并不真正关心保持高精度,只需转换为double
并执行双算术。