gpt4 book ai didi

java - 实现单位转换

转载 作者:行者123 更新时间:2023-12-01 15:23:38 27 4
gpt4 key购买 nike

我正在开发一个函数,用于计算米单位的金额。米计算规则是:

  • 1.6 公里路程最低票价 - 12/-
  • 随后 1 公里 - 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 等等。

我根据代码得到的结果应该如下所述:

enter image description here

我一直工作到 4 点,结果不正确的地方被宣布为 undet 应该与白天或晚上相关。

我为此付出了很多努力,但未能获得预期的结果。如果我尝试纠正一件事,那么其他事情就会出错或没有给出预期结果。谁能帮我解决这个问题。花了几乎一整天的时间试图解决这个问题。

最佳答案

我已经分析了工作表,但没有找到给出其中显示结果的公式。似乎某些值存在一些舍入差异。我发现只有 25 或 75 美分的值(value)是不同的。例如,您计算出 18,5,它应该是 19(结果是 18,75,您向下舍入到 18,5,但它应该向上舍入到 19)。因此,如果您没有用于创建表格的原始公式,我认为确保结果与工作表匹配的唯一方法就是对其进行硬编码。这不是一个优雅的解决方案,但它保证了正确的结果。

关于java - 实现单位转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502274/

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