【问题标题】:Round decimal to the second decimal place小数点四舍五入到小数点后第二位
【发布时间】:2017-11-23 05:22:23
【问题描述】:

好的,如何将小数舍入到小数点后第二位而不是小数点后一位?我必须创建一个菜单,其中“客户”订购食物,我们必须包括小计、税款和小费。我的代码运行良好,除非总金额应该是 3.8 美元,但应该是 3.8 美元。我怎样才能通过只使用 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!");


    }

非常感谢!

【问题讨论】:

标签: java decimal rounding currency


【解决方案1】:

这是一个小代码 sn-p 使用 DecimalFormat 来解决您的问题。

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

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

谢谢

【讨论】:

  • 似乎不起作用,因为 BlueJ 似乎无法识别“DecimalFormat”,有没有办法使用带有 Math.round() 的 case/if 语句或类似的东西?
【解决方案2】:

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

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

String d = f.format(taxSubtotal2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多