我正在研究一个计算米单位的功能。米计算规则是:
- 上午 1.6 公里的最低票价 - 12/-
- 随后 1 公里 amt - 7/-
- 午夜旅程加收 25% 的票价
我写的函数是:
public static void CalculateAutoFare(int kmIndex) {
double fare = 12.00;
double night = 15.00;
double subseIncre = 1.50;
double nightIncre = 0.25;
int j=0;
for (int i=1; i <= kmIndex; i++) {
if (i == 3 || j == 4) {
fare += 1.00f;
j =0;
}
else {
fare += subseIncre;
j++;
}
fare = Math.round(fare*2f)/2f;
double extra = ((double) fare * nightIncre);
night = fare + extra;
night = Math.round(night*2f)/2f;
System.out.println("I = " + i + " Fare = " + fare + " Night = " + night + " 25%Extra = " + extra);
}
System.out.println("Day = " + fare + " Night = " + night);
}
kmIndex 是公里的索引。仪表读数为 1.00、1.10、1.20、1.30...1.90、2.00.... 因此 kmIndex 为 1.00 = 0、1.10 = 1、1.20 - 3 等等。
我根据代码得到的结果应该在下面提到:
我一直工作到 4 点,结果不正确的地方被宣布为 undet 应该与白天或晚上有关。
我为此做了很多工作,但无法达到预期的效果。如果我尝试纠正一件事情,那么其他事情就会出错或没有给出预期的结果。谁能帮我解决这个问题。几乎一整天都在试图解决这个问题。