四舍五入不符合所有预期结果

Rounding does not match all expected results

这个程序一切正常,它符合我的导师要求的所有预期输出,除了输入为 66 和 5000 时 知道测试的输入是 89 , 1024 都匹配正确 但是当我输入 66 和 5000 时,我总是少一加仑 ///

import java.util.Scanner;
import java.lang.Math;

public class CostEstimator {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);

double distance = 0.0;
double fuelNeeded = 0.0;
double gallonsFuel = 0;
double costNeeded = 0.0;

final double MILES_PER_LITER = 13.7;
final double LITER_PER_GALLON = 3.785;
final double COST_PER_GALLON = 2.629;
    
System.out.println("Enter the distance to be covered (miles):");
distance = scnr.nextDouble();

fuelNeeded = distance/13.7 ;                 
System.out.println("Fuel Needed: " + fuelNeeded + " liter(s)" );  
 
 gallonsFuel = Math.round(fuelNeeded/3.785)  ;
 System.out.println("Gallons needed: " + (int)gallonsFuel + " gallon(s)");

 costNeeded = gallonsFuel * 2.629;
 System.out.println("Cost needed: " + costNeeded + " $" );

} }

每个输入的预期输出是这样的

输入66

输入要覆盖的距离(英里): 所需燃料:4.817518248175182 升 所需加仑数:2 加仑 所需费用:5.258 $

输入89

输入要覆盖的距离(英里): 所需燃料:6.496350364963504 升 所需加仑数:2 加仑 所需费用:5.258 $


输入5000

输入要覆盖的距离(英里): 所需燃料:364.9635036496351 升 所需加仑数:97 加仑 所需费用:255.013 $

输入1024

输入要覆盖的距离(英里): 所需燃料:74.74452554744526 升 所需加仑数:20 加仑 所需费用:52.58 $

round 函数四舍五入到最接近的整数,但在为旅行购买燃料时,您可能希望四舍五入。 Double-check问题要求什么,是四舍五入到最接近的整数还是下一个更高的整数?

四舍五入在数学中称为“ceiling”,在Java中称为Math.ceil