高手帮忙找错,^0^

qingying1117 2004-12-06 01:22:14
一个很简单的小程序的,但是却不知道怎么会出现这么大的“误差”,^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
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
A_Qiao 2004-12-06
  • 打赏
  • 举报
回复
泰勒公式里的角度单位是弧度,不是度。
网络咖啡 2004-12-06
  • 打赏
  • 举报
回复
30的单位是什么?弧度还是角度?
如果是弧度的话,应该转换一下.

记得弧度是0-3.14的吧.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧