我为我的作业做了这个数学运算,你必须找到想象的数字。
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部分)。然后,无论答案是什么,我都可以根据想象和想象的部分找到想象中的数字。
我的问题是-16*-1
取代16
取代15
而不是{{1}}。有谁知道如何解决这个问题?
答案 0 :(得分:0)
你的代码错了。这是它应该如何看待:
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;
}