2013-04-23 64 views
0

你好家伙我新来的机器人,并希望显示二次公式计算这里是我在android中的代码没有错误显示在此代码,但仍然在模拟器上它不显示结果:-(Android中的二次公式计算?

public class MainActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button b1 = (Button) findViewById(R.id.btnSubmit); 
    final EditText et1 = (EditText) findViewById(R.id.etVA);//whats wrong 
    final EditText et2 = (EditText) findViewById(R.id.etVC);//whats wrong 
    final EditText et3 = (EditText) findViewById(R.id.etVC);//whats wrong 
    final TextView answer = (TextView) findViewById(R.id.txtResult);//whats wrong 
    b1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      String a1 = et1.getText().toString();//whats wrong 
      double a = Double.parseDouble(a1);//whats wrong 

      String b1 = et2.getText().toString();//whats wrong 
      double b = Double.parseDouble(b1);//whats wrong 

      String c1 = et3.getText().toString();//whats wrong 
      double c = Double.parseDouble(c1);//whats wrong 

      double x1 = (-b+Math.sqrt(b*b-4*a*c))/(2*a);//whats wrong 

      System.out.println("x1 = "+ x1); 

      String R = x1+ ""; //whats wrong 
      answer.setText("Your Answer is " + R); //whats wrong 
     } 
    }); 
} 
+0

试试这Double.valueof(b1),而不是此Double.parseDouble(b1); – Yugesh 2013-04-23 11:33:26

+0

仍然没有工作:-( – 2013-04-23 11:41:00

+0

请任何一个帮助我做android的二次感谢公式的计算 – 2013-04-23 11:44:29

回答

1

我已经找到了解决方案。代码很好,但我只是在做一个简单的逻辑错误

final EditText et1 = (EditText) findViewById(R.id.etVA); 
final EditText et2 = (EditText) findViewById(R.id.etVC);//that is the mistake it should be like (R.id.etVB).... 
final EditText et3 = (EditText) findViewById(R.id.etVC); 
2

尝试这样

 String a1 = et1.getText().toString(); 
     double a = Double.valueof(a1); 

     String b1 = et2.getText().toString(); 
     double b = Double.valueof(b1); 

     String c1 = et3.getText().toString(); 
     double c = Double.valueof(c1); 

     double x1 = (-b+Math.sqrt(b*b-4*a*c))/(2*a); 

     System.out.println("x1 = "+ x1); 

     String R = String.valueof(x1); 
     answer.setText("Your Answer is " + R); 
+0

谢谢大家寻求帮助,它为我工作我在我的代码中犯了一个小错误,现在它解决了:-) – 2013-05-09 08:07:39

0

调用onclicklistner()通过查看

 b1.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

     } 
    }); 
1

你的程序没有任何错误,你米ust提供有效的输入。否则你会得到输出你的答案是NAN即不是数字。

在这个意义上的有效输入,a的值,b和提供必须满足方程斧 + BX + C = 0℃。所以二次公式可以用来找到根。

实施例有效输入:

a = 1.0 
b = 3.0 
c = 2.0 

输出对于上述输入:

Your Answer is -1.0