日期:2014-05-20  浏览次数:20711 次

java算术题
public class dfgf {
public static void main(String[]args)
{
int x=100,y=800;
int speed=20;
int time=0;

while(time<5)
{


x=x+20*time*(int)Math.cos(45.0);
y=y-20*time*(int)Math.sin(45.0)-(int)(9.8*time*time)/2;
time++;
System.out.println(" x="+ x+" y="+ y);

}
}  
}
这个程序我不知道是什么问题x的值总是不会改变的, 不知道为什么?求教!

------解决方案--------------------
Java code
(int)Math.cos(45.0); // 结果为0 
x=x+20*time*(int)Math.cos(45.0); //想当于 x=x+20*time*0;

------解决方案--------------------
(int)Math.cos(45.0); 转整型为0; 改为(double)Math.cos(45.0)
------解决方案--------------------
探讨

(int)Math.cos(45.0); 转整型为0; 改为(double)Math.cos(45.0)

------解决方案--------------------
(int)Math.cos(45.0)
这个的值始终是0,cos45变成整数后结果为0.所以x始终不变。
下面的(int)Math.sin(45.0)也是一样的。但是由于y后面还减了一个东西,所以y变了。。。。
------解决方案--------------------
(int)Math.cos(45.0),这是强制类型转换即将Math.cos(45.0)转换为整数,就是0;所以x总是不变的!