将小数舍入到小数点后第二位

时间:2017-11-23 05:22:24

标签: 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)/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!");


    }

非常感谢!

2 个答案:

答案 0 :(得分:1)

以下是使用 DecimalFormat 解决问题的小代码段。

DecimalFormat decimalFormat = new DecimalFormat("#0.00");
System.out.println(decimalFormat.format(total3));

这会将您的十进制值打印为附加了两位小数的字符串。 此外,您可以声明一个decimalFormat变量,并在任何地方使用它代码,无论您想要显示2位小数值。

由于

答案 1 :(得分:0)

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

DecimalFormat f = new DecimalFormat(" ##。00");

String d = f.format(taxSubtotal2);