lpirate4
2015-10-27 07:25
采纳率: 50%
浏览 1.4k
已采纳

Java数值计算问题,新手求解。

package chapter5;

import java.math.BigDecimal;

class Rectangle {
private double length;
private double width;

public Rectangle(double length, double width) {
    this.length = length;
    this.width = width;
}

double findArea() {
    return length * width;
}

public void setLength(double length) {
    BigDecimal l = new BigDecimal(length);
}

public void setWidth(double width) {
    BigDecimal w = new BigDecimal(width);
}

class Cuboid extends Rectangle {
    private double height;

    public Cuboid(double length, double width, double height) {
        super(length, width);
        this.height = height;
        // TODO 自动生成的构造函数存根
    }

    double findVolume() {
        return super.findArea() * height;
    }
}

}

public class Test {

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Rectangle A = new Rectangle(2.3, 3);
    A.findArea();
    System.out.println(A.findArea());





}

}
我想计算面积和体积的时候返回的是结果的精确值,具体代码该如何修改,可以直接在setter方法中提前设置吗?
想了想,我描述问题不清楚,谢谢你们的回答了。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • mnlin 2015-10-27 16:08
    已采纳

    返回的本来就是系统能得到最精确的值,返回类型是双浮点类型。如果想要精确到某一位,那可以在方法里直接把结果处理一下再返回,也可以得到值后再求精

    已采纳该答案
    打赏 评论
  • wlz9527 2015-10-27 07:49

    你现在的代码返回值是多少?还有你需要结果精确到多少位?

    打赏 评论
  • JonsonJiao 2015-10-31 13:27

    不涉及到精确计算的业务(比如保险、银行)你是用double或float都可以了,他们的结果不会出现太大的问题,但是要注意的是其精度是有可能出现问题的,比如0.005,可能表示为0.00499999999之类的。
    BigDecimal一般用于精确计算业务中,但是你的set方法中并没有进行正确的设置。

    打赏 评论

相关推荐 更多相似问题