Taylor_XYJ 2014-08-19 03:47 采纳率: 0%
浏览 2327

关于在java里面输出精度的问题

定义抽象类shape,在里面定义final static pi=3.14,和计算周长面积方法,circle类继承shape并实现抽象方法,在测试类里面计算圆的周长和面积时,输出结果精度不准确,该怎么办?

源码如下:
shape.java源码
public abstract class shape {
final static double pi = 3.14;
double mianji;
double zhouchang;
public abstract double C();
public abstract double S();
}
circle.java源码
public class circle extends shape{
double r;
circle(double r){
this.r=r;
}
public double C(){
return 2*r*pi;
}
public double S(){
return r*r*pi;
}
}
testShape.java源码
public class testShape {
public static void main(String[] args) {
circle ci = new circle(5);
System.out.println("圆形的周长是" + ci.C() + ";圆形的面积是" + ci.S());
}
}

半径等于5时的结果:圆形的周长是31.400000000000002;圆形的面积是78.5
半径等于6时的结果:圆形的周长是37.68;圆形的面积是113.04

问题:只是当初始化半径为5时出现精度问题,这是什么原因?应该怎样调整?

  • 写回答

1条回答

  • 快乐的2 2014-08-19 05:18
    关注

    对于精度要求高的计算请使用java的BigDecimal对象计算.

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗