使用for循环时分割的问题

时间:2014-02-21 01:47:54

标签: java for-loop division

出于某种原因,每当我尝试运行此代码时,speed仍为0,并且i最多为x,然后speed突然已更改为1.0speed应该是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);
 }  

2 个答案:

答案 0 :(得分:3)

试试这个:

double x = 200; // use a double instead of an int

问题?你划分了两个int,结果是另一个int。通过将两个操作数中的一个转换为double,该除法现在将产生一个带小数的数字。

答案 1 :(得分:0)

x必须是float变量才能获得正确的结果。如果两个,i和x都是整数,速度也是整数,这就是你只得到0和1的原因