我做了一段程序, 需要使用多次循环,循环中还要使用三角函数,所以变量都使用double型,java的double型数据小数点后精确到了16位,以至于程序长时间无法运行成功,死在那里。可我看同学用的vc6,double型小数点后只有4位。什么办法能让java的double型数据小数点后只保留4位或更少?程序片断如下,比较复杂
  do
        {
          
          if (planenum==0)
              break;
          xyuan=xsign;
          yyuan=ysign;
          xsign=xsign+0.05;       //把横坐标微小移动
          ysign=Math.sqrt(16-0.0625*xsign*xsign);  //用xsign把ysign求出
          longthadd=Math.sqrt((xsign-xyuan)*(xsign-xyuan)+(ysign-yyuan)*(ysign-yyuan));//算出增加量
          longth=longth+longthadd;
        }while(longth<minspeed);
        longopoint=Math.sqrt(xsign*xsign+ysign*ysign);
        if(xsign<0)    //角度 反三角函数变换
        {y= longopoint*Math.sin(3.1416-Math.asin(ysign/longopoint)-0.1606)+36.5;                     //用当前xsign变换出x
         x=longopoint*Math.cos(3.1416-Math.asin(ysign/longopoint)-0.1606)+27.5;
        }
        else{
            y=longopoint*Math.sin(Math.asin(ysign/longopoint)-0.1606)+36.5;                     //用当前xsign变换出x
            x=longopoint*Math.cos(Math.asin(ysign/longopoint)-0.1606)+27.5;
        }还有 本来我想换成float型,可是java的三角函数 开平方函数只能用double型 郁闷
而且 
float a;
a=a+0.05;//这个报错 为什么啊还请帮助则个

解决方案 »

  1.   

    樓主,應該這樣 float a=0f; a=a+0.05f;
      

  2.   

    java的double型数据小数点后精确到了16位,以至于程序长时间无法运行成功,死在那里。可我看同学用的vc6,double型小数点后只有4位。什么办法能让java的double型数据小数点后只保留4位或更少什么意思?
    你所谓的精确到16位和4位是指什么?
    vc6的double小数点后也不可能只是4位,你看到的只是显示出来的而已。