Java数学帮助虚数

Java数学帮助虚数,java,math,Java,Math,我在为我的作业做这个数学题,你必须找到虚数 double dem = (b*b-4*a*c)*-1; double dem2 = Math.sqrt(dem); realPart = (-b/(2*a)); imagine = (dem2)/(2*a); imagineneg = (dem2)/(2*a); 所以基本上我想知道,平方根里面的数字不是负数。假设我输入a:1,b:-1,c:4.25。当你进行判别时,它将是-16,但我希望它是正的,所以我将它乘以-1(

我在为我的作业做这个数学题,你必须找到虚数

double dem = (b*b-4*a*c)*-1;
    double dem2 = Math.sqrt(dem);
    realPart = (-b/(2*a));
    imagine = (dem2)/(2*a);
    imagineneg = (dem2)/(2*a);
所以基本上我想知道,平方根里面的数字不是负数。假设我输入
a:1
b:-1
c:4.25
。当你进行判别时,它将是
-16
,但我希望它是正的,所以我将它乘以
-1
(这是dem部分)。然后我求出根,不管答案是什么,然后进入想象和想象部分,在那里你可以找到虚数

double dem = (b*b-4*a*c)*-1;
    double dem2 = Math.sqrt(dem);
    realPart = (-b/(2*a));
    imagine = (dem2)/(2*a);
    imagineneg = (dem2)/(2*a);

我的问题是,我得到的不是
-16*-1
,而是
16
,而是如何得到
15
。有人知道如何解决这个问题吗?

您的代码错误。下面是它的外观:

double root1 = 0.0;
double root2 = 0.0;
double discriminant = (b*b-4*a*c);
double denom = 2.0*a;
if (discriminant > 0.0) {
    double root1 = (-b - Math.sqrt(discriminant))/denom;
    double root2 = (-b + Math.sqrt(discriminant))/denom;
} else if (discriminant < 0.0) {
    // deal with complex conjugate roots here
} else {
    root2 = -b/denom;
}
double root1=0.0;
双根2=0.0;
双判别式=(b*b-4*a*c);
双denom=2.0*a;
如果(判别式>0.0){
双根1=(-b-数学sqrt(判别式))/denom;
双根2=(-b+数学sqrt(判别式))/denom;
}else if(判别式<0.0){
//这里处理复共轭根
}否则{
root2=-b/denom;
}

ugh。。。等待什么?只是为了确定:
(b*b-4*a*c)*-1
应该是
(b*b-4*a*c)*(-1)
。你也可以用它来得到绝对值,我用你的公式试过,得到16。但是无论如何,为什么不使用
-(b*b-4*a*c)
,而不是乘以-1呢?或者干脆
4*a*c-b*b
?我认为有些代码您没有向我们展示,或者您没有揭示您真正的问题,而是跳了出来。您更大的问题是您使用的是面向对象的语言,甚至没有考虑复杂的类。真丢人。