java – “D”和“F”的数字格式异常异常?

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

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,它可能不知道它是一个浮点数还是一个double(或者它必须推断或转换它).

你的数字解析器必须拾取这些字母.

> 12.3d是12.3,是双倍> 12.3f为浮点数为12.3

相关文章
相关标签/搜索