计算 Java
Calculation in Java
我在 Java 中有以下计算:
rightMotor = (int) (((double)speed)/((double)100)*rightMotor));
Speed 和rightMotor 都是整数。
问题是,它一直返回 0。我试图将速度和 100 强制除以双倍,结果没有不同。任何人都可以给我一些见解吗?
提前致谢。
计算 returns 为零的原因是表达式计算的 double
值小于一。
您似乎放错了括号 - 目前,您将 speed
除以一百次 rightMotor
,结果必然小于 1
。
您需要修正您的公式才能使其生效。如果你想计算 speed / 100 * rightMotor
就好像它是一个数学公式,你可以在除法之前做乘法,完全避免 double
s:
rightMotor = speed * rightMotor / 100;
由于您将结果分配给一个 int 变量,因此进行浮点除法没有意义。
rightMotor = speed/(100*rightMotor);
会给你相同的结果,如果 speed < 100*rightMotor
.
则为 0
如果您的意图是将 speed/100
乘以 rightMotor
,您仍然不需要转换为 double 然后再转换回 int。
就这样:
rightMotor = (speed*rightMotor)/100;
我在 Java 中有以下计算:
rightMotor = (int) (((double)speed)/((double)100)*rightMotor));
Speed 和rightMotor 都是整数。 问题是,它一直返回 0。我试图将速度和 100 强制除以双倍,结果没有不同。任何人都可以给我一些见解吗?
提前致谢。
计算 returns 为零的原因是表达式计算的 double
值小于一。
您似乎放错了括号 - 目前,您将 speed
除以一百次 rightMotor
,结果必然小于 1
。
您需要修正您的公式才能使其生效。如果你想计算 speed / 100 * rightMotor
就好像它是一个数学公式,你可以在除法之前做乘法,完全避免 double
s:
rightMotor = speed * rightMotor / 100;
由于您将结果分配给一个 int 变量,因此进行浮点除法没有意义。
rightMotor = speed/(100*rightMotor);
会给你相同的结果,如果 speed < 100*rightMotor
.
如果您的意图是将 speed/100
乘以 rightMotor
,您仍然不需要转换为 double 然后再转换回 int。
就这样:
rightMotor = (speed*rightMotor)/100;