简单的除法运算返回零?

Zai*_*ani -2 java

我错过了什么?

float stepSize = 0.0f;
int activeCircleRadius = 10;
int numSteps = 24;

AiLog.v("init activeCircleRadius " + activeCircleRadius + " numSteps "
                + numSteps);
stepSize = activeCircleRadius / numSteps;
AiLog.v("stepSize is " + stepSize);
Run Code Online (Sandbox Code Playgroud)

操作后,日志中的stepSize始终为零.是否将浮点数除以int?

Mar*_*ers 10

这两个变量都是整数,因此您执行整数除法:

activeCircleRadius / numSteps
Run Code Online (Sandbox Code Playgroud)

整数除法的结果是整数.结果被截断.

要解决此问题,请将一个(或两个)变量的类型更改为float:

float stepSize = 0.0f;
float activeCircleRadius = 10;
Run Code Online (Sandbox Code Playgroud)

或者在除法表达式中添加一个转换为float:

stepSize = (float)activeCircleRadius / numSteps;
Run Code Online (Sandbox Code Playgroud)