gpt4 book ai didi

java - "D"和 "F"的数字格式异常异常?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:10 26 4
gpt4 key购买 nike

我在我的代码中遇到了一个非常奇怪的问题。我有一个简单的温度转换器,用户可以在其中输入摄氏温度,然后在按下“转换”后,显示华氏温度。如果用户没有输入有效的东西(任何不是数字或小数的东西),就会显示一个错误对话框。代码:

btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String tempFahr = (String) enterDegreesC.getText();
double tempF = Double.valueOf(tempFahr);
double tempFConverted = tempF * 1.8 +32;
displayDegreesF.setText(tempFConverted + " Farenheit");
}
catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(frmTemperatureConverter, "Please Enter a Number.", "Conversion Error", JOptionPane.ERROR_MESSAGE);
}
}
});

非常简单明了的代码,除了一件事外效果很好。 当我输入数字后跟字母“f”或“d”的组合时,没有显示错误对话框,并且华氏温度是使用字母前面的数字计算的。仅此发生在“d”和“f”(以及“D”和“F”)上,而不是任何其他字母。我被这个难住了。为什么只有这两个字母放在数字后才会导致不抛出异常并继续进行计算?

最佳答案

某些语言允许您在数字字面量之后放置字母以表示它是什么类型。

如果您只是简单地编写 12.3,它可能不知道它是 float 还是 double(或者它必须推断或转换它)。

您的数字解析器一定会识别这些字母。

  • 12.3d12.3 作为 double
  • 12.3f12.3 作为 float

关于java - "D"和 "F"的数字格式异常异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309958/

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