Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么此表达式的计算结果一直为0_Java_Math - Fatal编程技术网

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
并执行双算术。