java - 当我的程序在BlueJ中的文本 'crashing'之后遇到 "%.2f"时,它是 "Gross Pay : "

标签 java bluej

该程序用于计算扣除后的员工净工资,但我在员工工资摘要中显示总工资时遇到问题。

我已经更改了对话框的类型等,是否还有解决方案允许我在工资单摘要中使用非输入对话框?

import javax.swing.JOptionPane; // Dialog boxes are created to allow user inputs
public class Payslipgenerator  
{


  public static void main(String[] args) 
  {
      String employeeName,grossPay,payslipFinal; //Declaring String variables
      double PRSI=.025, PAYE=.2, USC=.04, Pension=.05, healthInsurance= 75; //Declaring consants used in the Application
      double prsiCalc, payeCalc, uscCalc,pensionCalc, netValue; //Double variables that will store calculations

      employeeName = JOptionPane.showInputDialog(null, "Enter Employee name : ", "User Info"); //Asks Employee to input their name, which is then stored
      grossPay = JOptionPane.showInputDialog(null, "Enter Gross Pay (€) : ", "User Info"); //Prompts employee to enter Gross Pay for deduction calculation
      double employeeGrossPay = Double.parseDouble(grossPay); //Stores input in double Variable

      prsiCalc      = employeeGrossPay * PRSI;
      payeCalc      = employeeGrossPay * PAYE;
      uscCalc       = employeeGrossPay * USC ;
      pensionCalc   = employeeGrossPay * Pension ; 
      netValue      = employeeGrossPay - (prsiCalc + payeCalc + uscCalc + pensionCalc + healthInsurance);
      payslipFinal  = String.format("Gross Pay :€%.2f \nPRSI : €%.2f \nUSC : €%.2f \nPension Plan : €%.2f \nHealth Insurance : €75.00 \nNet Earnings: €%.2f"
      + employeeGrossPay, prsiCalc, uscCalc, pensionCalc, netValue); 

      JOptionPane.showInputDialog(null, "Employee Name : " + employeeName + "\n\n" + payslipFinal, "Payslip Breakdown");

  }
}

最佳答案

改变

payslipFinal  = String.format("Gross Pay :€%.2f \nPRSI : €%.2f \nUSC : €%.2f \nPension Plan : €%.2f \nHealth Insurance : €75.00 \nNet Earnings: €%.2f"
      + employeeGrossPay, prsiCalc, uscCalc, pensionCalc, netValue); 

payslipFinal  = String.format("Gross Pay :€%.2f \nPRSI : €%.2f \nUSC : €%.2f \nPension Plan : €%.2f \nHealth Insurance : €75.00 \nNet Earnings: €%.2f"
      , employeeGrossPay, prsiCalc, uscCalc, pensionCalc, netValue); 

测试:

public static void main(String[] args) {
    String payslipFinal  = String.format("Gross Pay :€%.2f \nPRSI : €%.2f \nUSC : €%.2f \nPension Plan : €%.2f \nHealth Insurance : €75.00 \nNet Earnings: €%.2f"
            , 1f, 2f, 3f, 4f, 5f);
    System.out.println(payslipFinal);
}

输出:

Gross Pay :€1,00 
PRSI : €2,00 
USC : €3,00 
Pension Plan : €4,00 
Health Insurance : €75.00 
Net Earnings: €5,00

关于java - 当我的程序在BlueJ中的文本 'crashing'之后遇到 "%.2f"时,它是 "Gross Pay : ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58304544/

相关文章:

java - 不同的端点看似随机地获得授权

java - HTML 格式的用户注册表 - 不存在必需的字符串参数 'user_id'

java - 屏幕上没有显示输出

java - 如何编写测试类来测试我的代码?

java - 将数组列表添加到构造函数中

java - tomcat WAR 的 Jersey 错误

java - 尝试在 java 类中编译 groovy 类时出现问题

java - 泛型和集合 - 类型未定义的方法

java - 通过用户名从数组列表中删除用户

java - 如何捕获字母并显示错误并且仅显示整数?