二次方程求解器南方根正数

时间:2015-10-13 17:36:03

标签: java quadratic

我正在编写一个非常简单的二次方程求解器,但即使平方根是正数,答案也会保持不变(我使用的例子是1x ^ 2 + 5x + 6,其中b ^ 2 = 25和4 * a * c = 24)但它仍然会出现。请帮忙。

import java.util.*;
import java.lang.Math;
public class HelloWorld {
      public static void main (String[] args){
      System.out.println ("type quadratic equation please use format ax^2+/-bx+/-c");
Scanner userInput=new Scanner(System.in);
String userEquation=userInput.next();
char a=(userEquation.charAt(0));
char b=(userEquation.charAt(5));
char c=(userEquation.charAt(8));
System.out.println(a);
 System.out.println(b);
  System.out.println(c);
  double p1=4*a*c;
  double p2=2*a;
  double p3=-b;
  double p4=b*b;
  double p5=p4-p1;
  double p6=Math.sqrt(p5);
  double pa7=-b+p6;
  double pb7=-b-p6;
  double pa8=pa7/2*a;
  double pb8=pb7/2*a;
  System.out.println("x1= "+pa8+ " x2="+pb8);
}
}

1 个答案:

答案 0 :(得分:2)

您永远不会将char解析为double来进行数学运算。

试试这个:

double a=Double.parseDouble(userEquation.charAt(0)+"");
double b=Double.parseDouble(userEquation.charAt(5)+"");
double c=Double.parseDouble(userEquation.charAt(8)+"");

这会将您的变量类型更改为double,以便您可以继续使用代码并进行数学运算。

我同意@Gaël的评论。为其他变量(p1p2等)添加打印语句,并在离开变量ab和{{1}时注意差异}类型c或类型char