为什么我们在第二个 println 上得到 1 作为余数?
Why do we get 1 as remainder on the second println?
package PracticePackage;
public class whileLoop {
public static void main(String[] args) {
int i=1;
System.out.println("Quotient "+i/2);
System.out.println("Remainder "+i%2);
}
}
因为整数不是实数,所以你得到 1 作为答案,余数的实部被忽略,因为你将 i
定义为整数
这是 Java 用来产生其操作数余数的公式:
(a/b)*b+(a%b)
其中 a
是被除数,b
是除数。
所以你的情况是这样的:
int i = 1;
int b = 2;
int result = (i / b) * b + (i % b);
因此结果是 1
而不是 0
1/2 = 0.5
您将 i
定义为 int
如果答案是实数,java中的整数除法会取答案,因此 1/2 变为 0,使 1%2 等于 1
我希望解释清楚。
package PracticePackage;
public class whileLoop {
public static void main(String[] args) {
int i=1;
System.out.println("Quotient "+i/2);
System.out.println("Remainder "+i%2);
}
}
因为整数不是实数,所以你得到 1 作为答案,余数的实部被忽略,因为你将 i
定义为整数
这是 Java 用来产生其操作数余数的公式:
(a/b)*b+(a%b)
其中 a
是被除数,b
是除数。
所以你的情况是这样的:
int i = 1;
int b = 2;
int result = (i / b) * b + (i % b);
因此结果是 1
而不是 0
1/2 = 0.5
您将 i
定义为 int
如果答案是实数,java中的整数除法会取答案,因此 1/2 变为 0,使 1%2 等于 1
我希望解释清楚。