我在android studio上做了一个应用程序来获取多文本的结果取决于具体的计算,但我在编辑文本中有浮动问题,用户可以选择在文本中输入数字或将其留空,所以当他按下按钮时,应用程序将根据条件作出决定,如果用户将其留空//什么都不做,如果他输入数字//则使用等式编号1。
在这种情况下,我会这样做:
try {
n1 = Float.parseFloat(e1.getText().toString());
n2 = Float.parseFloat(e2.getText().toString());
n3 = Float.parseFloat(e3.getText().toString());
} catch (NumberFormatException e) {
Toast.makeText(getApplicationContext(),
"Invalid Information", Toast.LENGTH_LONG).show();
return false;
}
如果我有直接行动,它会起作用,但在我的问题中,我有多个方程式,只有一个解决方案,它将是这样的:
if (n1=="" || n2=="" || n3="")
{ Toast.makeText(getApplicationContext(),
"Invalid Information", Toast.LENGTH_LONG).show();}
else
{// do equation1}
但是,n1,n2,n3是“浮动”,所以这些比较会产生错误。 所以我需要纠正这个以这种方式在我的应用程序上工作????? !!!! ?????
答案 0 :(得分:0)
你必须创建一个函数来告诉你String是否可以像这样转换为float:
public static boolean isNumeric(String string)
{
try
{
float f = Float.parseFloat(string);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}
请注意"" (空字符串)无法转换为float,因此函数会自动处理它们。
接下来要做的是通过添加我们刚刚创建的函数调用来改进条件语句:
String n1 = e1.getText().toString();
String n2 = e2.getText().toString();
String n3 = e3.getText().toString();
if (!isNumeric(n1) || !isNumeric(n2) || !isNumeric(n3))
return "Wrong input";
else
// Do your math here