java - 当我的程序在 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");
}
}
解决方案
改变
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
推荐阅读
- spring - 常用注解的Spring实现
- azure-sql-database - 使用 ARM 模板在 Azure SQL 数据库中自动化数据发现和分类
- git - 如何使用带有模块的私有 go 包
- rx-java - RxJava:并行处理并组合结果(不打乱顺序)
- python - Kivy中画布和网格布局之间的空白
- excel - 如何将源代码放入 Excel vba 的列中?
- apache-kafka - 跨目录跨越 Kafka 主题分区
- ios - Swift UserDefault 存储的数组数据加载到 UICollectionView
- jquery - 如何选择可搜索选项jquery的多选数组类型选项?
- python - Django 项目中应用程序范围的 utils 文件的位置