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

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题