首页 > 解决方案 > 当我的程序在 BlueJ 中的文本“Gross Pay :”之后遇到“%.2f”时,它“崩溃”了

问题描述

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

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

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");

  }
}

标签: javabluej

解决方案


改变

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

推荐阅读