Строка из EditText для поплавка
У меня есть EditText, для которого будет использоваться число с плавающей точкой. Поэтому я пытаюсь прочитать текст из EditText и поместить его в переменную float. Но у меня, похоже, есть проблема с текстом. Это строка, которая у меня есть:
float Number = ( ( EditText )findViewById( R.id.edit_float ) ).getText();
Я пробовал использовать Float.parseFloat(string) и просто общее кастинг, но ничего не похоже на это. Что я могу сделать здесь? Кроме того, есть ли способ проверить допустимое число с плавающей точкой перед тем, как записать его в переменную?
Ответы
Ответ 1
Попробуйте это.
EditText edt = (EditText) findViewById(R.id.edit_float);
float number = Float.valueOf(edt.getText().toString());
Вы используете метод valueOf()
, если класс оболочки Float
преобразует строку в float. В этом примере я получаю объект Editable
этого EditText
с getText()
, на который я вызываю метод toString()
, чтобы получить из него строку.
Обновление: Полностью правые ребята извините. Время, чтобы увеличить мой счетчик овец.
Ответ 2
float getFloatFrom(EditText txt) {
try {
return NumberFormat.getInstance().parse(txt.getText().toString()).floatValue();
} catch (ParseException e) {
return 0.0f;
}
}
НЕ используйте Float.valueOf(), если вы хотите, чтобы код работал в странах, которые используют десятичную запятую вместо десятичной точки.