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对象计算.

    评论

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择