Java 作业(初学者)- 我认为我的数学或声明有问题?

标签 java math

对于我的 CS1 类(class),我们必须用 Java 编写一个程序,要求用户输入以下内容; - 餐厅账单金额 - 给定 3 个选项,他们愿意给多少小费

然后程序将计算原始账单金额、小费、税金和最终账单金额 - 打印在屏幕上。

我能够提示并打印所有这些内容,但数学是错误的......有人可以建议吗?这对我来说是新的,所以我不确定我到底错过了什么或错过了什么。尝试过很多不同的事情,这就是我现在的处境。谢谢!

我尝试过添加和删除括号、更改声明方式、查找语法错误

/*Description: This program calculates a restaurant bill.
 */

import java.util.Scanner;

public class MiniProject3 {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("What is the check amount? ");
        double checkAmount = keyboard.nextDouble();
        System.out.print("What type of tip would you like to leave? ");
        System.out.print("Enter 1 for good tip (20%) ");
        System.out.print("Enter 2 for average tip (15%) ");
        System.out.print("Enter 3 for poor tip (10%) ");
        int tipChoice = keyboard.nextInt();
        double grandTotal;
        double taxTotal = (checkAmount * 0.07);
        double subTotal = (checkAmount + taxTotal);
        if (tipChoice == 1)
            grandTotal = 0.20 * subTotal;
        if (tipChoice == 2)
            grandTotal = 0.15 * subTotal;
        else
            grandTotal = 0.10 * subTotal;
        System.out.print("total check: $" + checkAmount);
        System.out.println();
        System.out.print("tax: $" + taxTotal);
        System.out.println();
        System.out.print("tip: $" + (grandTotal - subTotal));
        System.out.println();
        System.out.print("final bill: $" + grandTotal);
    }
}

现在没有错误消息 - 但数学还差得很远。

最佳答案

有两种方法可以解决这个问题:

  1. 将计算出的小费选择保存在另一个变量中,然后将该变量添加到小计中以获得总计。

  2. 只需将 20% 乘以 1.20,而不是所有提示的 0.20,即可直接得出总计。

关于Java 作业(初学者)- 我认为我的数学或声明有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57781773/

相关文章:

java - 我必须创建两种方法,一种用于顺时针旋转,另一种用于逆时针旋转

math - 数学方程可能无限循环?

java - BigDecimal movePointRight 和 scaleByPowerOfTen 有什么区别?

java - Gradle 清理并复制 JAR 文件

java - 如何从java中的字符串获取特定的int值[122356]

java - 为什么无法重新打开 TargetDataLine?

java - JLayeredPane布局管理器自由移动对象

javascript - 求三点之间的 Angular ,([x,y], [x,y], [x,y]) 允许钝 Angular 结果。 (数学和 JavaScript)

math - 将四元数从右手坐标系转换为左手坐标系

java - 当鼠标光标悬停在 JButton 上时更改 boolean 值