在 Java 中打印时将 Double 数字格式化为 2 位小数

Format a Double number at 2 decimals when printing in Java

这是我的代码:

public static void main (String[] args)
{
    //Greeting and explanation of program
    Scanner keyboard = new Scanner(System.in);

    System.out.print("I am going to help you keep track of fuel consumption "
            + "by converting the metric system into miles and gallons.\n");

    System.out.print("How many kilometers have you driven?\n");
    double kilometers =keyboard.nextDouble();

    double milePerKilometer = Math.round(kilometers/1.609);

    System.out.printf("You drove: "+ milePerKilometer + " miles.\n\n");

    System.out.print("How many liters of gas have you purchased?\n");
    double liters = keyboard.nextDouble();

    double gallonPerLiter = Math.round(liters/3.785);

    System.out.printf("You purchased: "+ gallonPerLiter + " gallons of gas.\n\n");

    double milePerGallon = (milePerKilometer/gallonPerLiter);

    System.out.printf("So your car is getting " + milePerGallon +
            " miles per gallon.");

}

最后一行我应该将 MPG 四舍五入到小数点后两位。我不知道该怎么做。我听说我应该在某处添加 %.2f,但不知道在哪里。

因为 string.format 您可以使用:

String.format("%02d", yourNumber)

或者只是这样做:

System.out.printf("So your car is getting %02d miles per gallon.", milePerGallon);