gpt4 book ai didi

java - Java 摄氏度到华氏度

转载 作者:行者123 更新时间:2023-11-30 09:49:53 28 4
gpt4 key购买 nike

我可以将华氏度转换为摄氏度,但反过来不行。我附上了下面的代码。希望这足以了解发生了什么。

    public void actionPerformed(ActionEvent arg0) {  
double temps = 0, temp1 = 0;
String instrings;
instrings = temp.getText();
if(instrings.equals(""))
{
instrings = "0";
temp.setText("0");
}
temps = Double.parseDouble(instrings);
instrings = temp.getText();
if(instrings.equals(""))
{
instrings = "0";
temp.setText("0");
}
temp1 = Double.parseDouble(instrings);
if(arg0.getActionCommand().equals("C")){
temps = (( temps * 9)/5+32);
DecimalFormat formatters = new DecimalFormat("#,###,###.###");
results.setText(""+formatters.format(temps));
}
else if(arg0.getActionCommand().equals("F"));
{
temp1 = (((temps - 32)/9)*5);
DecimalFormat formatters = new DecimalFormat("#,###,###.###");
results.setText(""+formatters.format(temp1));
}
}

最佳答案

放一个

System.out.println(arg0.getActionCommand());

在您的方法中,据推测您会在使用摄氏按钮时看到它不是“C”

一般都是看控制台,看看周围有没有报错信息。


另一个想法:您正在使用两个双变量 tempstemp1,将 instrings 解析为它们,然后设置其中一个他们的结果。为什么这么复杂?


一般来说,我建议不要使用 getActionCommand() 方法,而是给每个按钮一个自己的 ActionListener。您可以为此使用匿名类。由于这两种情况几乎相同,因此在此处使用内部(甚至本地)类的两个子类:

abstract class ConversionListener implement ActionListener {
DecimalFormat formatter = new DecimalFormat("#,###,###.##");

public void actionPerformed(ActionEvent e) {
String input = temp.getText();
if (input.equals("")) {
input = "0";
temp.setText(input);
}
double number = Double.parseDouble(input);
results.setText(formatter.format(convert(number)));
}
/** to implement by subclasses */
abstract double convert(double number);
}
celsiusToFahrenheit.addActionListener(new ConversionListener() {
double convert(double celsius) {
return number * 9 / 5 + 32;
}
});
fahrenheitToCelsius.addActionListener(new ConversionListener() {
double convert(double fahrenheit) {
return (fahrenheit - 32) / 9 * 5;
}
});

关于java - Java 摄氏度到华氏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5500264/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com