2010-11-19 75 views
14

我有一个EditText将用于浮点数。所以我试图从EditText中读取文本并将其放入一个浮点型变量中。但我似乎有一个文字浮动问题。这是我行:从EditText到浮点数的字符串

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

我使用Float.parseFloat(串),只是一般的铸造尝试,但似乎没有做到这一点。我能在这里做什么?另外,有没有办法在写入变量之前检查有效的浮点数?

+0

确保您养成了查看返回类型的习惯。显然尝试将一个字符串设置为一个浮点数是行不通的。在Octavian Damiean的回答中,你必须把它转换成如下所示。 – Thomas 2010-11-19 22:05:56

+0

关于这个话题,他实际上试图用这行代码从一个可编辑到一个float,因为'getText()'返回一个Editable。 – kcoppock 2010-11-19 22:08:47

回答

36

试试这个。

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

您使用valueOf()方法如果Float包装类的字符串转换为浮动。在这个例子中,我得到EditTextEditable对象与getText(),我在其中调用toString()方法从中获取字符串。

更新:完全正确的人抱歉。时间来增加我的羊计数器。

+2

尝试edt.getText()。toString() – Falmarri 2010-11-19 22:05:14

+2

'getText()'返回一个'Editable'。你需要使用'edt.getText()。toString();'。编辑:击败1分钟。 :P – kcoppock 2010-11-19 22:06:22

+0

Thanx!现在我的完整行是:Float.valueOf(((EditText)findViewById(R.id.edittext_wireframe_width)).getText()。toString()); – Espen 2010-11-19 22:08:20

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

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

+0

我认为数字转换最好按照[如何解析数字字符串包含逗号在一个整数在java中]处理(https://stackoverflow.com/questions/11973383/how将包含逗号分隔的数字字符串转换成java中的整数) – bated 2017-09-28 19:56:34

+0

你能更具体吗? – Daniel 2017-09-30 07:45:27