出于某种原因,每当我尝试运行此代码时,speed
仍为0
,并且i
最多为x
,然后speed
突然已更改为1.0
。 speed
应该是x
的小数,取决于for循环运行的次数。我不明白为什么会这样,并且非常感谢一些清晰度。
double speed;
int x = 200;
for(int i = 0; i <= x; i++){
speed = i/x;
System.out.println("Speed- " + speed);
System.out.println("Ticks- " + i);
}
for(int i = x; i >= 0; i--){
speed = i/x;
System.out.println("Speed- " + speed);
System.out.println("Ticks- " + i);
}
答案 0 :(得分:3)
试试这个:
double x = 200; // use a double instead of an int
问题?你划分了两个int
,结果是另一个int
。通过将两个操作数中的一个转换为double
,该除法现在将产生一个带小数的数字。
答案 1 :(得分:0)
x必须是float变量才能获得正确的结果。如果两个,i和x都是整数,速度也是整数,这就是你只得到0和1的原因