错误表示在尝试将字符串转换为double时已在main中定义的变量然后表示未知符号 [英] Error says variable already defined in main when trying to convert string to double then says unknown symbol

查看:91
本文介绍了错误表示在尝试将字符串转换为double时已在main中定义的变量然后表示未知符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经找了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆