Java 小数点后四舍五入至小数点后第二位

Java 小数点后四舍五入至小数点后第二位,java,decimal,rounding,currency,Java,Decimal,Rounding,Currency,好的,如何将小数点四舍五入到第二位而不是第一位?我必须创建一个菜单,顾客在菜单上点菜,我们必须包括小计、税金和小费。我的代码可以正常工作,除非总数大约是3.8美元,而它应该是3.80美元。我怎样才能只用Math.round解决这个问题?我在菜单上的钱代码是 double SUBtotal = subTotal * 100.00; System.out.println("Your current total is: $" + Math.round(SUBtotal)/10

好的,如何将小数点四舍五入到第二位而不是第一位?我必须创建一个菜单,顾客在菜单上点菜,我们必须包括小计、税金和小费。我的代码可以正常工作,除非总数大约是3.8美元,而它应该是3.80美元。我怎样才能只用Math.round解决这个问题?我在菜单上的钱代码是

    double SUBtotal = subTotal * 100.00;
    System.out.println("Your current total is: $" + 
    Math.round(SUBtotal)/100.00); 
    System.out.println("Options:");
    System.out.println(" 1. Order another item");
    System.out.println(" 2. Checkout");

        mainOp = scan.nextInt();
       if (mainOp==2)
    {

        System.out.println(Order);

        double tax = subTotal * 0.0825;
        double taxSubtotal = tax + subTotal;
        double please = taxSubtotal * 100.00;
        double taxSubtotal2 = Math.round(please) / 100.00;
        System.out.println("\nSubtotal (with tax): $ " + taxSubtotal2);

        System.out.println("Tip: $");
        double tip = scan.nextDouble();
        double total = taxSubtotal + tip;
        double total2 = total * 100.00;
        double total3 = Math.round(total2) /100.00;
        System.out.println("Final Total: $" + total3);

        System.out.println();

        System.out.println("Thank You For Ordering!");


    }

多谢各位

下面是一个使用DecimalFormat解决您的问题的小代码片段

DecimalFormat decimalFormat = new DecimalFormat("#0.00");
System.out.println(decimalFormat.format(total3));
这将把您的十进制值打印为一个附加了两位小数的字符串。 此外,您可以声明一个decimalFormat变量,并在代码的任何地方使用它,无论您想在哪里显示2位小数的值


谢谢

如果您想要3.80而不是3.8,请在获取总数后使用以下代码。字符串是你想要的

DecimalFormat f=新的DecimalFormat.00

String d = f.format(taxSubtotal2);

请不要故意破坏你的问题。这似乎不起作用,因为BlueJ似乎无法识别十进制格式,有没有办法将case/if语句与Math.round或类似的语句一起使用?