高手帮忙找错,^0^
一个很简单的小程序的,但是却不知道怎么会出现这么大的“误差”,^0^,高手们帮帮忙找错喽。
题目是:
编写一个java应用程序,从键盘输入x,利用下列泰勒公式计算cos(x)的值,并输出(要求精确到0.000001)。泰勒公式为:
cos(x)=1-x2/2! + x4/4! -x6/6! + x8/8! - ……
程序代码如下:
public class Calculate{
public static void main(String args[]){
KeyboardInput in=new KeyboardInput();
System.out.println("请输入x值:");
double x=in.readDouble();
double y=1;
int k=2,i=1,j=2;
double z;
while((z=Math.pow(x,j)/k)>0.000001){
y+=Math.pow(-1,i)*z;
i++;j+=2;
k=k*(j-1)*j; //阶乘计算
}
System.out.println("cos("+x+")="+y);
}
}
在输入30后,打印出的结果是:
cos(30.0)=2.1441070517250744