Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javax.swing.JOptionPane进行输入时出现计算错误_Java_Swing_Math - Fatal编程技术网

使用javax.swing.JOptionPane进行输入时出现计算错误

使用javax.swing.JOptionPane进行输入时出现计算错误,java,swing,math,Java,Swing,Math,因此,我开始学习用Java创建GUI的基础知识。我首先创建了一个基本的数学程序,它将解决一个二次型问题,其中输入通过一个选项窗格进行定向。然而,我注意到,只要没有想象的解决方案,程序就会给我解决方案。 代码如下: package window.math; import javax.swing.JOptionPane; public class WindowMath { public static void Solve(double a, double b, double c){ //Give

因此,我开始学习用Java创建GUI的基础知识。我首先创建了一个基本的数学程序,它将解决一个二次型问题,其中输入通过一个选项窗格进行定向。然而,我注意到,只要没有想象的解决方案,程序就会给我解决方案。 代码如下:

package window.math;
import javax.swing.JOptionPane;

public class WindowMath {

public static void Solve(double a, double b, double c){ //Gives the input of A, B, C to the formula
    double x;
    x = Math.pow(b,2) - 4 * a * c; //Determines whether solution will have imaginary numbers or not
    if (x >= 0){ //Real Solution output
        double y;
        double z;
        double j;
        double k;
        double l;
        y = -b + Math.sqrt(x);
        z = -b - Math.sqrt(x);
        j= 2 * a;
        k = y / j;
        l = z / j;
        JOptionPane.showMessageDialog(null, "The solutions are x = " + k + " and x = " + l + ".", "Quadratic Solver", JOptionPane.PLAIN_MESSAGE);
    } else { //Imaginary Solution Output
        double j;
        double v;
        double w;
        double y;
        double z;
        y = Math.abs(x);
        w = Math.sqrt(y);
        j = 2 * a;
        v = w / j;
        z = -b / j;
        JOptionPane.showMessageDialog(null, "The solutions are x = " + z + " + " + v + "i and x = " + z + " - " + v + "i.", "Quadratic Solver", JOptionPane.PLAIN_MESSAGE);
    }
}
public static void main(String[] args) {
    String a = JOptionPane.showInputDialog("Enter a:");
    String b = JOptionPane.showInputDialog("Enter b:");
    String c = JOptionPane.showInputDialog("Enter c:");
    double num1 = Double.parseDouble(a);
    double num2 = Double.parseDouble(b);
    double num3 = Double.parseDouble(b);
    Solve(num1,num2,num3);
}
}


当我运行三个数字给出一个虚数的解时,程序运行良好。但是,对于像a=1、b=2和c=1这样的对象,解决方案应该是x=-1,x=-1。只有真正的解决方案。相反,输出给我的是“x=-1.0+1.0i,x=-1.0-1.0i。我目前正在使用NetBeans IDE 8.2(Build 201609300101)进行编码,并使用Java update 1.8.0144和JavaVM 25.144-b01。如有任何帮助,我们将不胜感激。

代码中的问题在下面一行(来自
main
方法):

应该是:

double num3 = Double.parseDouble (c);

回答得比我快,但我完全同意:)@BrenoQ我不敢相信我完全忽略了这一点。非常感谢。希望我不再犯这个错误。
double num3 = Double.parseDouble (c);