Подтвердить что ты не робот

Строка из EditText для поплавка

У меня есть EditText, для которого будет использоваться число с плавающей точкой. Поэтому я пытаюсь прочитать текст из EditText и поместить его в переменную float. Но у меня, похоже, есть проблема с текстом. Это строка, которая у меня есть:

float Number = ( ( EditText )findViewById( R.id.edit_float ) ).getText();

Я пробовал использовать Float.parseFloat(string) и просто общее кастинг, но ничего не похоже на это. Что я могу сделать здесь? Кроме того, есть ли способ проверить допустимое число с плавающей точкой перед тем, как записать его в переменную?

4b9b3361

Ответ 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(), если вы хотите, чтобы код работал в странах, которые используют десятичную запятую вместо десятичной точки.