Я читал в сети о проблемах с обработкой типов float
и double
в Java. К сожалению, изображение до сих пор не ясно. Следовательно, я прошу здесь прямо. (
Моя таблица MySQL
содержит различные столбцы DECIMAL(m,d)
. Значение m
может варьироваться от 5 до 30. d
остается постоянным на уровне 2.
Вопрос 1.
Какой эквивалентный тип данных я должен использовать в Java для работы (т.е. хранения, извлечения и обработки) с размером значений в моей таблице? (Я согласился с двойным - отсюда и этот пост).
Вопрос 2.
При попытке разобрать double из строки я получаю ошибки
Double dpu = new Double(dpuField.getText());
например -
"1" -> java.lang.NumberFormatException: empty String
"10" -> 1.0
"101" -> 10.0
"101." -> 101.0
"101.1" -> 101.0
"101.19" -> 101.1
Что я делаю не так? Как правильно преобразовать строку в двойное значение?
И какие меры я должен предпринять, чтобы выполнить операции с такими значениями?
EDIT
Это код -
System.out.println(dpuField.getText());
Double dpu = new Double(dpuField.getText());
System.out.println(dpu);
Да, проблема заключается в том, что getText()
сообщает о неверном значении dpuField
.
Этот метод вызывается для события JTextField keyTyped
. Так что здесь не так?
РЕДАКТИРОВАТЬ 2
Глядя на:
http://journals.ecs.soton.ac.uk/java/tutorial/post1.0/ui/keylistener.html
Видимо, keyTyped()
не дает мне код ключа. Мне придется переключиться на keyRealeased()