代码之家  ›  专栏  ›  技术社区  ›  Espen

从EditText到float的字符串

  •  14
  • Espen  · 技术社区  · 14 年前

    我有一个EditText,它将用于浮点数。所以我试图从EditText中读取文本并将其放入一个float变量中。但我似乎有一个文本浮动的问题。这是我的台词:

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

    我试过使用Float.parseFloat(string)和普通的casting,但似乎什么也做不了。我在这里能做什么?另外,在将一个有效的浮点数写入变量之前,是否有方法检查它?

    2 回复  |  直到 14 年前
        1
  •  37
  •   Octavian Helm    13 年前

    试试这个。

    EditText edt = (EditText) findViewById(R.id.edit_float);
    float number = Float.valueOf(edt.getText().toString());
    

    你用的是 valueOf() 方法如果 Float 将字符串转换为浮点数的包装类。在这个例子中,我得到 Editable 目的 EditText 具有 getText() 我称之为 toString() 方法从中获取字符串。

    更新: 完全正确伙计们对不起。是时候增加我的羊计数器了。

        2
  •  -1
  •   Daniel    7 年前
    float getFloatFrom(EditText txt) {
        try {
            return NumberFormat.getInstance().parse(txt.getText().toString()).floatValue();
        } catch (ParseException e) {
            return 0.0f;
        }
    }
    

    如果希望代码在使用十进制逗号而不是小数点的国家/地区工作,请不要使用Float.valueOf()。