Java-比较double和int以及比较double

Java-比较double和int以及比较double,java,double,Java,Double,我正在模拟一辆卡车从仓库装载包裹。我有一个卡车超载的问题。我试过两种方法,但卡车的装载量总是超过其容量。我认为这是由于double和int之间的比较方法(方法1),或者double和double之间的比较(方法2) load_wgt(卡车)和next.getWgt(包裹)是双变量。 容量(卡车)是一个整数 方法1: while ((int) Math.ceil((this.load_wgt + next.getWgt())) <= this.capacity) {

我正在模拟一辆卡车从仓库装载包裹。我有一个卡车超载的问题。我试过两种方法,但卡车的装载量总是超过其容量。我认为这是由于double和int之间的比较方法(方法1),或者double和double之间的比较(方法2)

load_wgt(卡车)和next.getWgt(包裹)是双变量。 容量(卡车)是一个整数

方法1:

        while ((int) Math.ceil((this.load_wgt + next.getWgt())) <= this.capacity) {
            this.load_list.add(next);
            this.setLoad_wgt(this.load_wgt + next.getWgt());
            warehouse.remove(next);
            next.setTruck_id(this.id);
            System.out.println("parcel id " + next.getId() + " truck id " + this.id);
            next = warehouse.get(0);
        }

while((int)Math.ceil((this.load\u wgt+next.getWgt())你能为
warehouse
类和代码中使用的其他方法添加代码吗?double/int得到了回答。double/double有一些东西,通过添加日志,这可能很容易调试。在循环结束时的方法2中,打印比较中的所有变量。我建议使用a进行调试。谢谢你的评论。所以你不能这两种比较方法都可以吗?while循环之外的其他地方可能存在问题?
        while (compare <= 0) {
            this.load_list.add(next);
            this.setLoad_wgt(this.load_wgt + next.getWgt());
            warehouse.remove(next);
            next.setTruck_id(this.id);
            System.out.println("parcel id " + next.getId() + " truck id " + this.id);
            next = warehouse.get(0);
            compare = Double.compare(this.load_wgt + next.getWgt(), (double) this.capacity);
        }