java - 我正在使用 Java 制作工资单。如果我的数学公式看起来正确,为什么我得到的净工资是错误的?

标签 java

我正在制作工资单计算器。第一个人工作了 38.00 小时,工资为 8.75 美元。第二个人工作了 46.50 小时,工资为 17.00 美元。很明显,第二个人加类了。我在计算净工资和总工资时遇到问题。第二个人的净工资应该是 718.89 美元。我一直收到 140.89 美元。只有当此人加类(> 40)时才会出现问题。我的if语句有问题吗?我想要一些建议。我已经学习 Java 两周了,请原谅我的错误。

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        final byte PERCENT = 15;
        // Tax is 15%
        final float taxRate = PERCENT / (float) 100;

        Scanner scanner = new Scanner(System.in);
        System.out.print("First Name: ");
        String firstName = scanner.next().trim();
        System.out.print("Last Name: ");
        String lastName = scanner.next().trim();
        System.out.println(lastName + ", " + firstName);
        System.out.print("Pay Rate: ");
        float payRate = scanner.nextFloat();
        System.out.print("Hours Worked: ");
        float totalHours = scanner.nextFloat();

        // regular hours = total hours if less than 40
        // overtime = total hours - 40

        float regularPay = 0;
        if (totalHours <= 40) {
            regularPay = totalHours * payRate;
        }
        float overTimePay = 0;
        if (totalHours > 40) {
            overTimePay = (float) ((totalHours - 40) * 1.5 * payRate);
        }
        final double grossPay = (double) regularPay + (double) overTimePay;
        System.out.println("Gross Pay: " + (Math.round(grossPay * 100.0) / 100.0));
        final double taxAmount = grossPay * taxRate;
        System.out.println("Tax Amount: " + (Math.round(taxAmount * 100.0) / 100.0));
        final double netPay = grossPay - taxAmount;
        System.out.println("Net Pay: " + (Math.round(netPay * 100.0) / 100.0));
    }
}

最佳答案

如果 totalHours > 40,regularPay 在您的代码中将为 0。 你应该把条件改成这样。

  • 如果 totalHours > 40,首先计算 40 小时的 regularPay
  • 加类费应为剩余小时数(总小时数-40)

关于java - 我正在使用 Java 制作工资单。如果我的数学公式看起来正确,为什么我得到的净工资是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63927447/

相关文章:

java - Camel : failure to add routes dynamically

java - 使用 PdfBox 添加页面后尝试保存 PDF 时出现 "IOException: COSStream has been closed and cannot be read"

java - TimeSeries Rest API https ://monitoring. googleapis.com/v3/projects/../timeseries 返回空

java - 更新我的图形

java - Spring MVC。 Controller 和 JSP 协作

java - 接口(interface)、类和子类继承

java - 如何在 Java 中存储 <String, List<String>>?

java - 如何从 java.sql.timestamp 检索 mysql 时间戳列

java - Azure 存储 Blob : Uploaded CSV file shows zero bytes

java - 替换 Android/Java 中第一次出现的字符?