【发布时间】:2022-01-04 06:35:37
【问题描述】:
算术除法运算符 / 返回商,而算术模运算符 % 返回余数。使用除法运算符时返回0值而模运算符%返回1的原因可能是什么原因。表达式为1/10和1%10。
- 注意:我使用的是整数数据类型:“int”
【问题讨论】:
算术除法运算符 / 返回商,而算术模运算符 % 返回余数。使用除法运算符时返回0值而模运算符%返回1的原因可能是什么原因。表达式为1/10和1%10。
【问题讨论】:
嗯,这与编码无关。 我们可以通过解决基本数学来简单地理解它。 众所周知:
Dividend / Divisor == > we get 2 Answers
Quotient and Remainder
如果余数为0,则Dividend完全除以Divisor 部分商。
在您建议的示例中, 1/10 实际答案是 0.1,这是一个浮点数,
在您的 Java 代码中,您必须寻找整数值,这实际上是不可能的。
很明显,1%10 会给你 1, 作为除数的 10 不能除以 1 作为被除数。
您可以尝试使用浮点变量。我希望你能得到预期的结果。
【讨论】:
就像你说的模数返回除法的剩余部分。
例如:
1 % 10 = 0 R 1
15 % 10 = 1 R 5
而 1 / 10 返回 0,因为您只使用整数。如果您不使用浮点数,则它不会返回 1 并舍入结果。
所以如果你想要一个浮点数,你需要这样的东西:
System.out.println(1 / 10); // -> 0
System.out.println((float) 1 / 10); // -> 0.1 //You can also use double for casting
System.out.println(1.0 / 10); // -> 0.1
System.out.println(1 / 10.0); // -> 0.1
System.out.println(1.0 / 10.0); // -> 0.1
【讨论】: