好的,我如何将小数舍入到小数点后第二位而不是第一个小数位呢?我不得不创建一个菜单,其中“客户”订购食物,我们必须包括小计和税和小费。我的代码工作正常,除非总计是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!");
}
非常感谢!
答案 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);