java – 这个二次公式我做错了什么?
发布时间:2020-12-15 05:02:26 所属栏目:Java 来源:网络整理
导读:a = 1,b = -7,c = 12 public static void quadratic(double a,double b,double c){ double r1; double r2; double turducken; turducken = Math.pow(b,2)-(4*a*c); r1 = (-1*b) + ((Math.sqrt(turducken))/(2*a)); r2 = (-1*b) - ((Math.sqrt(turducken))/(2
a = 1,b = -7,c = 12 public static void quadratic(double a,double b,double c){ double r1; double r2; double turducken; turducken = Math.pow(b,2)-(4*a*c); r1 = (-1*b) + ((Math.sqrt(turducken))/(2*a)); r2 = (-1*b) - ((Math.sqrt(turducken))/(2*a)); System.out.println("r1: "+r1); System.out.println("r2: "+r2); 当正确的答案应为4和3时,系统打印出7.5和6.5. 我无法弄清楚我在这里做错了什么. 解决方法
应该:
r1 = ((-1*b) + Math.sqrt(turducken))/(2*a); r2 = ((-1*b) - Math.sqrt(turducken))/(2*a); (即一切除以2 * a) 你可以进一步简化你的表达: double sq = Math.sqrt(b*b - 4*a*c); r1 = (-b + sq)/(2*a); r2 = (-b - sq)/(2*a); (我发现表达越简单,发现错误就越容易) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |