gpt4 book ai didi

java - 方法的输出不正确

转载 作者:行者123 更新时间:2023-12-01 14:53:25 25 4
gpt4 key购买 nike

我正在编写生成一辆停放的汽车、一个 parking 计时器、一名警察和一张 parking 罚单的类(class)。它们通过一个程序来演示,该程序将它们全部实例化并使用它们。我已经完成了 99% 的编程,但我在 ParkingTicket 类中遇到了问题。该类中有一种方法,可以根据汽车停放的未支付时间来计算车主为其汽车支付的罚款。非法 parking 的第一个小时或不足一小时的基本罚款为 25 元,之后每小时或不足一小时加收 10 元。这是我的类(class)代码:

public class ParkingTicket{
private ParkedCar car;
private PoliceOfficer officer;
private double fine;
private int minutes;
double BASE_FINE = 25.0;
double HOURLY_FINE = 10.0;

public ParkingTicket(ParkedCar aCar, PoliceOfficer anOfficer, int min){
this.car = new ParkedCar(aCar);
this.officer = new PoliceOfficer(anOfficer);
this.minutes = min;

}

public ParkingTicket(ParkingTicket ticket2){
this.car = ticket2.car;
this.officer = ticket2.officer;
this.fine = ticket2.fine;
this.minutes = ticket2.minutes;
}

public void calculateFine(){
int minOver = car.getMinutesParked() - minutes;
int extraFine = HOURLY_FINE * (minOver / 60);
if(minOver <= 60){
fine = BASE_FINE;
}
else{
fine = BASE_FINE + extraFine;
}
}

public ParkedCar getCar(){
return car;
}

public PoliceOfficer getOfficer(){
return officer;
}

public int getMinutes(){
return minutes;
}

public String toString(){
return "Car Data:\n" + car +
"\nOfficer Data:\n" + officer +
"\nMinutes Illegally Parked: " + (car.getMinutesParked() - minutes) +
"\nFine: $" + fine;

}



}

我遇到的问题是,当打印罚款时,它始终是 00.00。我似乎无法弄清楚这是为什么。任何帮助将不胜感激。

最佳答案

你正在进行 int 除法——你将一个 int 除以一个 int,结果将是一个 int。不要这样做,通过将其中一个数字声明为 double 或将分子或分母强制转换为 double 来使其中一个数字加倍。

即,

double extraFine = HOURLY_FINE * (minOver / 60.0); // note the 60.0

关于java - 方法的输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14575090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com