计算 Java

Calculation in Java

我在 Java 中有以下计算:

rightMotor = (int) (((double)speed)/((double)100)*rightMotor));

Speed 和rightMotor 都是整数。 问题是,它一直返回 0。我试图将速度和 100 强制除以双倍,结果没有不同。任何人都可以给我一些见解吗?

提前致谢。

计算 returns 为零的原因是表达式计算的 double 值小于一。

您似乎放错了括号 - 目前,您将 speed 除以一百次 rightMotor,结果必然小于 1

您需要修正您的公式才能使其生效。如果你想计算 speed / 100 * rightMotor 就好像它是一个数学公式,你可以在除法之前做乘法,完全避免 doubles:

rightMotor = speed * rightMotor / 100;

由于您将结果分配给一个 int 变量,因此进行浮点除法没有意义。

rightMotor = speed/(100*rightMotor);

会给你相同的结果,如果 speed < 100*rightMotor.

则为 0

如果您的意图是将 speed/100 乘以 rightMotor,您仍然不需要转换为 double 然后再转换回 int。

就这样:

rightMotor = (speed*rightMotor)/100;