汽车非法停放的第一个小时或部分时间内的罚款为RM150.00。
每增加一小时或部分时间,再加RM50.00 汽车非法停放。
最高罚款应为RM300.00。
我该怎么办,如果我想设置最高罚款只是300?
public class ParkingTicket {
private ParkedCar car;
private PoliceOfficer police;
private ParkingMeter meter;
private double fine;
private int min;
private double firstfine = 150;
private double hour_fine =50;
private double max_fine = 300;
public ParkingTicket() {
car=null;
police=null;
fine=0;
min=0;
}
public void CalTotalFine() {
int time = car.getParkMin()- meter.getMinutesPurchased();
if(time < 60) {
fine=firstfine;
} else {
fine= firstfine+ (hour_fine*(time/60));
}
}
}
答案 0 :(得分:0)
为了确保罚款永远不会超过max_fine
,您可以在评估罚款后添加支票:
if (fine > max_fine) {
fine = max_fine;
}
并进一步使用/返回fine
的值。
答案 1 :(得分:0)
fine
就是你所说的计算值。因此,将其存储为字段是没有意义的。
如果您想限制它,那么您可以使用Math.min()
方法。
public static final double MIN_FINE = 150;
public static final double MAX_FINE = 300;
public static final double HOURLY_RATE = 50;
public double getFine() {
int time = car.getParkMin()- meter.getMinutesPurchased();
double fine = 0;
if(time < 60) {
fine = MIN_FINE;
} else {
fine = MIN_FINE + (time/60)*HOURLY_RATE;
}
// return the smallest of these values
return Math.min(fine, MAX_FINE);
}