循环Java中我一直错过的简单数学/计算错误?
所以我花了三个小时来解决下面的问题。我的逻辑似乎正确,语法似乎正确,但出于某种原因,代码根本不听我的。多典型啊
float counter = 0;
float pColor = counter / ((float)Math.abs((x_end - x_start)));
System.out.println("FIRST EVER PCOUNTER:" + pColor);
System.out.println("FIRST EVER X START IS: " + x_start);
System.out.println("FIRST EVER X END IS: " + x_end);
System.out.println(x_end + " " + x_start);
// part of another program
while(x != x_end){
x+= step_x;
counter++;
System.out.println("Count is:" + counter);
if(p<0){
p+= twoDy;
}
else{
y += step_y;
p += twoDyMinusDx;
}
System.out.println("pColor is: "+pColor);
System.out.println("p1.c.r: "+ p1.c.r);
System.out.println("x_end is: " + x_end);
System.out.println("x_start is:" + x_start);
System.out.println("");
因此,上面所有的打印语句都是为了检查pColor是否正在更改。出于某种原因,所有打印语句都表示pColor为0.0
FIRST EVER PCOUNTER:0.0
FIRST EVER X START IS: 341
FIRST EVER X END IS: 350
350 341
Count is:1.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:2.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:3.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:4.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:5.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:6.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:7.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:8.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
Count is:9.0
pColor is: 0.0
p1.c.r: 1.0
x_end is: 350
x_start is:341
正如你们所见,计数器在不断增加,但每一个pColor都保持在0.0。怎么了
共 (0) 个答案