错误表示在尝试将字符串转换为double时已在main中定义的变量然后表示未知符号 [英] Error says variable already defined in main when trying to convert string to double then says unknown symbol
问题描述
我已经找了40多分钟试图在这个网站上找到可能与我的问题无关的答案。
I have looked for over 40 minutes trying to find an answer on this site that might pertain to my question to no avail.
我很难过。我正在尝试将程序转换为GUI。我正在使用Textpad,它在编译时告诉我变量已在main方法中定义。然后当转换为int或double时,它告诉我它找不到符号并指向我想要转换的变量。然后在我的计算过程中,它告诉我二进制运算符'*'的错误操作数类型。
I am stumped. I am trying to convert a program to GUI. I am using Textpad which is telling me when I compile that the variable is already defined in main method. Then when converting to int or double, it is telling me that it cannot find symbol and points to the variable that I am trying to convert. Then during my calculations, it is telling me bad operands type for binary operator '*'.
import javax.swing.JOptionPane;
public class PayrollGUI {
// calculates payroll
public static void main (String [] args) {
String name = JOptionPane.showInputDialog ("Employee's Name: ");
int name = Integer.parseInt(nameString);
String hours = JOptionPane.showInputDialog ("Number of hours worked in a week (e.g., 10: ");
int hours = Integer.parseInt(hoursString);
String payRate = JOptionPane.showInputDialog ("Hourly pay rate (e.g., .6.75: ");
double payRate = Double.parseDouble(payRateString);
String federalTaxRate = JOptionPane.showInputDialog ("Federal tax witholding rate (e.g., .20: ");
double federalTaxRate = Double.parseDouble(federalTaxRateString);
String stateTaxRate = JOptionPane.showInputDialog (" State tax witholding rate (e.g., .09: ");
double stateTaxRate = Double.parseDouble(stateTaxRateString);
//calculate witholdings, grosspay and netpay
double federalWitholding = federalTaxRate * (hours * payRate);
double stateWitholding = stateTaxRate * (hours * payRate);
double grossPay = hours * payRate;
double netPay = grossPay - withholdings;
double witholdings = federalWithodling + stateWitholding;
//format to keep two digit decimal
witholdings = (int) (witholdings * 100) /100.0;
netPay = (int) (netPay * 100) / 100.0;
grossPay = (int) (grossPay * 100) / 100.0;
federalWitholding = (int) (federalWitholding * 100) / 100.0;
stateWitholding = (int) (stateWitholding *100) / 100.0;
/*String output = (null);
String output = (null);*/
String output = "Employee Name: " + name +
"/nHours Worked: " + hours +
"/nPay Rate: $" + payRate +
"/nGross Pay: $" + grossPay +
"/nDeductions:" +
"/n Federal Witholding: $" + federalWitholding +
"/n State Witholding : $" + stateWitholding +
"/n Total Deductions : $" + witholdings +
"/n Net Pay: $";
JOptionPane.showMessageDialog(null, output);
}//end main
}//end Payroll
推荐答案
String name = ...;
int name = ...;
不能这样做。
用 String nameString
替换字符串名称
,因为那是使用 Integer.parseInt
时要尝试解析的变量! (并且不要忘记所有其他变量!)
Replace String name
with String nameString
since that is the variable you are trying to parse when you use Integer.parseInt
! (And don't forget all your other variables too!)
例如。
字符串小时
,字符串hoursString
String payRate
with String payRateString
String federalTaxRate
with String federalTaxRateString
String stateTaxRate
with String stateTaxRateString
String hours
with String hoursString
String payRate
with String payRateString
String federalTaxRate
with String federalTaxRateString
String stateTaxRate
with String stateTaxRateString
这篇关于错误表示在尝试将字符串转换为double时已在main中定义的变量然后表示未知符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!