从编辑文本到浮点数的字符串

2022-09-03 09:22:26

我有一个编辑文本,它将用于浮点数。因此,我正在尝试从EditText中读取文本并将其放入浮点变量中。但我似乎有一个文本来浮动问题。这是我的行:

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()FloatEditableEditTextgetText()toString()

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


答案 2
float getFloatFrom(EditText txt) {
    try {
        return NumberFormat.getInstance().parse(txt.getText().toString()).floatValue();
    } catch (ParseException e) {
        return 0.0f;
    }
}

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


推荐