如果条件与浮动文本问题

if condition with float text issue

我在 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是"float",所以这些比较会报错.. 所以我需要更正此问题才能以这种方式在我的应用程序上运行??????!!!!??????

您必须创建一个函数来告诉您字符串是否可以像这样转换为浮点数:

public static boolean isNumeric(String string)
{
   try  
   {  
      float f = Float.parseFloat(string);  
   }  
   catch(NumberFormatException nfe)  
   {  
      return false;  
   }  
   return true;  
}

请注意,“”(空字符串)无法转换为浮点数,因此函数会自动处理它们。

接下来要做的是通过添加我们刚刚创建的函数调用来改进您的条件语句:

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