我模拟一辆卡车从仓库装载包裹。 我有卡车超载的问题。 我尝试了两种方法,但卡车总是会承受比其容量更大的负荷。 我认为这是由于double和int(方法1)之间的比较方法,或者double和double(方法2)之间的比较方法造成的
load_wgt(卡车)和next.getWgt(包裹)是双变量。 容量(卡车)是整数。
方法一:
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);
}
方法2:
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);
}
如何确保下一个包裹的装载量不超过卡车的容量? 在双精度之间或双精度和整数之间进行比较的正确方法是什么?