CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

简单的问题!指教!在线等待!急用!谢谢!!!

楼主waitanotherday()2004-12-03 19:53:50 在 Java / J2SE / 基础类 提问

import   java.io.*;  
  import   java.text.DecimalFormat;  
   
  public   class   example{  
  public   static   void   main(String   args   []){  
  double   x,y=0;  
  int   s=1;  
  int   m=1;  
  try{  
  System.out.println("Please   enter   the   value   of   x:");  
  BufferedReader   a   =   new   BufferedReader(new   InputStreamReader(System.in));  
  x   =   Double.parseDouble(a.readLine());  
  for(int   j=1;Math.abs(Math.pow(x,2*j)/m)>=0.000001;j++){  
  m   =   m*2*j*(2*j-1);  
  y   =   1+(-1)*s*Math.pow(x,2*j)/m;  
  }  
  DecimalFormat   df   =   new   DecimalFormat("0.000000");  
  System.out.println("x="+x+"\n"+"cos(x)="+df.format(y));  
  }catch(IOException   e)   {   }  
  }  
  }  
   
  为什么输入0.0-1.5之间是可以的,输入2.0以后就什么反映都没用了!? 问题点数:10、回复次数:7Top

1 楼showone()回复于 2004-12-03 20:11:16 得分 2

for(int   j=1;Math.abs(Math.pow(x,2*j)/m)>=0.000001;j++){  
                m   =   m*2*j*(2*j-1);  
                System.out.println("m="+m);  
                y   =   1+(-1)*s*Math.pow(x,2*j)/m;  
                System.out.println("Y="+y);  
              }  
  看看结果,溢出了!Top

2 楼waitanotherday()回复于 2004-12-03 20:18:36 得分 0

还有一个问题,关于switch-case   语句的  
  case后面的常量表达式包括int,char,byte和short,  
  但String   也行吗!?Top

3 楼sc20184()回复于 2004-12-03 20:39:21 得分 2

我记得Case不能使StringTop

4 楼l28791002(の奔奔)回复于 2004-12-03 20:39:41 得分 2

case   后面是常量表达式,所以应该可以是String,楼主可以编程试试啊Top

5 楼l28791002(の奔奔)回复于 2004-12-03 20:43:45 得分 0

啊,不好意思,我也刚刚编了一下,好象在java中比较不行的,真的不好意思,脸红一下Top

6 楼waitanotherday()回复于 2004-12-03 20:57:07 得分 0

不过我刚刚试过,可以啊!Top

7 楼febchen()回复于 2004-12-03 22:12:40 得分 4

double   x,y=0;  
  int   s=-1;     //s初始值为-1  
  long   m=1;       //m数据类型改为long,溢出主要在此,其他为逻辑错误.  
  double   temp=1;  
  try{  
  System.out.println("Please   enter   the   value   of   x:");  
  BufferedReader   a   =   new   BufferedReader(new   InputStreamReader(System.in));  
  x   =   Double.parseDouble(a.readLine());  
  y=1;  
   
  for(int   j=1;Math.abs(Math.pow(x,2*j)/m)>=0.000001;j++){  
                                    m   =   m*2*j*(2*j-1);  
                                    y   =   y+s*Math.pow(x,2*j)/m;  
                                    s=s*(-1);       //加上这句  
   
                                      /*  
                                      为防止溢出,可以加上:  
                                                  if(Double.isInfinite(y)){  
  System.out.println("overflow");  
  break;  
                }  
                                      */  
                      }  
                      .....  
   
                       
  Top

相关问题

  • 简单的记录分页问题!!急用!!在线等待!!!
  • 关于DBGrid的简单问题——急用!!(在线等待)
  • 鼠标的问题,很简单,很急用,在线等待,快点呀!!!
  • 在线等待!!!急用!应该不难!
  • 关于字符指针的简单问题?在线等待,急用!(跟者有分)
  • 请问ASP图表组件最著名最常用的最简单的功能强大的组件有哪些?(急用,在线等待)
  • 求office2000注册码,急用!!!在线等待!
  • 求office 2000注册码.急用!!!在线等待!
  • 求一段代码!!急用!!在线等待!!
  • 急用,请来取50分,再线等待!!!

关键词

  • pow
  • math
  • 溢出
  • decimalformat
  • bufferedreader
  • double
  • abs
  • println
  • case

得分解答快速导航

  • 帖主:waitanotherday
  • showone
  • sc20184
  • l28791002
  • febchen

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo