我有一个EditText将用于浮点数。所以我试图从EditText中读取文本并将其放入一个浮点型变量中。但我似乎有一个文字浮动问题。这是我行:从EditText到浮点数的字符串
float Number = ((EditText)findViewById(R.id.edit_float)).getText();
我使用Float.parseFloat(串),只是一般的铸造尝试,但似乎没有做到这一点。我能在这里做什么?另外,有没有办法在写入变量之前检查有效的浮点数?
我有一个EditText将用于浮点数。所以我试图从EditText中读取文本并将其放入一个浮点型变量中。但我似乎有一个文字浮动问题。这是我行:从EditText到浮点数的字符串
float Number = ((EditText)findViewById(R.id.edit_float)).getText();
我使用Float.parseFloat(串),只是一般的铸造尝试,但似乎没有做到这一点。我能在这里做什么?另外,有没有办法在写入变量之前检查有效的浮点数?
试试这个。
EditText edt = (EditText) findViewById(R.id.edit_float);
float number = Float.valueOf(edt.getText().toString());
您使用valueOf()
方法如果Float
包装类的字符串转换为浮动。在这个例子中,我得到EditText
的Editable
对象与getText()
,我在其中调用toString()
方法从中获取字符串。
更新:完全正确的人抱歉。时间来增加我的羊计数器。
尝试edt.getText()。toString() – Falmarri 2010-11-19 22:05:14
'getText()'返回一个'Editable'。你需要使用'edt.getText()。toString();'。编辑:击败1分钟。 :P – kcoppock 2010-11-19 22:06:22
Thanx!现在我的完整行是:Float.valueOf(((EditText)findViewById(R.id.edittext_wireframe_width)).getText()。toString()); – Espen 2010-11-19 22:08:20
float getFloatFrom(EditText txt) {
try {
return NumberFormat.getInstance().parse(txt.getText().toString()).floatValue();
} catch (ParseException e) {
return 0.0f;
}
}
如果您希望代码在使用小数点逗号而不是小数点的国家/地区工作,请不要使用Float.valueOf()。
确保您养成了查看返回类型的习惯。显然尝试将一个字符串设置为一个浮点数是行不通的。在Octavian Damiean的回答中,你必须把它转换成如下所示。 – Thomas 2010-11-19 22:05:56
关于这个话题,他实际上试图用这行代码从一个可编辑到一个float,因为'getText()'返回一个Editable。 – kcoppock 2010-11-19 22:08:47