//我试图使用GUI程序来转换温度。我已经为用户使用了一个JTextField来输入一串数字,这样我就可以将该字符串字段转换为double,然后将该double用于公式,然后将其转换回字符串。我需要使用两种不同的方法进行转换。我对以下行的转换方法有错误:
c = double.parseDouble(userInput);
f = (c * 9 / 5) + 32);
&安培;
f = double.parseDouble(userInput);
c = (f * 9 / 5) + 32);
这是我的代码:
public Temperature() {
super( "Temperature Converter" ) ;
setSize( HEIGHT, WIDTH ) ;
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
JPanel panel1 = new JPanel() ;
panel1.setLayout(new GridLayout(2,5));
labelC = new JLabel("Celsius:");
panel1.add(labelC);
textFieldC = new JTextField( "Enter Here") ;
panel1.add(textFieldC) ;
labelEquals = new JLabel("=");
panel1.add(labelEquals);
textFieldAnswerF = new JTextField( "Answer") ;
panel1.add(textFieldAnswerF) ;
convertC2F = new JButton( "C to F") ;
panel1.add(convertC2F) ;
labelF = new JLabel("Fahrenheit:");
panel1.add(labelF);
textFieldF = new JTextField( "Enter Here") ;
panel1.add(textFieldF) ;
labelEquals = new JLabel("=");
panel1.add(labelEquals);
textFieldAnswerC = new JTextField( "Answer") ;
panel1.add(textFieldAnswerC) ;
convertF2C = new JButton( "F to C") ;
panel1.add(convertF2C) ;
add(panel1) ;
} // Temperature constructor
/**
Method to convert Celsius to Fahrenheit
*/
public double fahrenheit(double f, double c){
String userInput = textFieldC.getText();
c = double.parseDouble(userInput);
f = (c * 9 / 5) + 32);
textFieldAnswerF.setText("" + f);
}
/**
Method to convert Fahrenheit to Celsius
*/
public double celsius(double c, double f){
String userInput = textFieldF.getText();
f = double.parseDouble(userInput);
c = (f * 9 / 5) + 32);
textFieldAnswerC.setText("" + c);
}
以下是我的错误:
Temperature.java:87: error: class expected
c = double.parseDouble(userInput);
^
Temperature.java:87: error: ';' expected
c = double.parseDouble(userInput);
^
Temperature.java:87: error: not a statement
c = double.parseDouble(userInput);
^
Temperature.java:87: error: ';' expected
c = double.parseDouble(userInput);
^
Temperature.java:88: error: ';' expected
f = (c * 9 / 5) + 32);
^
Temperature.java:97: error: class expected
f = double.parseDouble(userInput);
^
Temperature.java:97: error: ';' expected
f = double.parseDouble(userInput);
^
Temperature.java:97: error: not a statement
f = double.parseDouble(userInput);
^
Process javac exited with code 1
Temperature.java:97: error: ';' expected
f = double.parseDouble(userInput);
^
Temperature.java:98: error: ';' expected
c = (f * 9 / 5) + 32);
^
10 errors
答案 0 :(得分:1)
Java区分大小写。使用
f = Double.parseDouble(userInput);
另外,在两种情况下都从第二个语句中删除额外的括号:
c = (f * 9 / 5) + 32;
^
答案 1 :(得分:0)
Celsius转换公式不正确。它是c =(f - 32)*(5/9)。尝试
c = (f - 32) * 5 / 9;
使用这两个公式,最后会有一个额外的,无与伦比的)
;删除它们。
答案 2 :(得分:0)
double
是原始类型,而Double
是包含类的包装类。在你的情况下,你正在使用双重和调用方法,这是无效的。
因此请使用Double
。