Исключение для числового формата Исключение с «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»), а не с любой другой буквой. Я поставлен в тупик на этом. Почему только эти две буквы, помещенные после цифры, приводят к тому, что исключения не генерируются и вычисление продолжается?