Java 这个二次方程类有问题吗
我需要编写一个代码来解一个二次方程,并在没有解的情况下显示一条消息,当我运行程序时,无论我使用什么数字,我总是得到第三个if语句,其中没有解Java 这个二次方程类有问题吗,java,Java,我需要编写一个代码来解一个二次方程,并在没有解的情况下显示一条消息,当我运行程序时,无论我使用什么数字,我总是得到第三个if语句,其中没有解 public class Quadratic { private double a, b, c, x, x1, x2; public Quadratic() { a = b = c = 1; } public Quadratic(double a1, double b1, double c1) {
public class Quadratic {
private double a, b, c, x, x1, x2;
public Quadratic() {
a = b = c = 1;
}
public Quadratic(double a1, double b1, double c1) {
a = a1;
b = b1;
c = c1;
}
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
public void setA(double a2) {
a = a2;
}
public void setB(double b2) {
b = b2;
}
public void setC(double c2) {
c = c2;
}
public void setQuadratic(double a3, double b3, double c3) {
a = a3;
b = b3;
c = c3;
}
public void roots() {
System.out.println(a + "x^2 + " + b + "x + " + c + " = 0");
if (Math.pow(b, 2) - 4 * a * c == 0) {
System.out.println("Solution: (" + oneSolution() + ")");
}
if (Math.pow(b, 2) - 4 * a * c > 0) {
System.out.println("Solutions: (" + solution1() + "," + solution2() + ")");
}
if (Math.pow(b, 2) - 4 * a * c < 0) {
System.out.println("Solutions: There are no solutions");
}
}
public double oneSolution() {
x = -b / 2 * a;
return x;
}
public double solution1() {
x1 = (-b + (Math.sqrt(Math.pow(b, 2) - 4 * a * c))) / (2 * a);
return x1;
}
public double solution2() {
x2 = (-b - (Math.sqrt(Math.pow(b, 2) - 4 * a * c))) / (2 * a);
return x2;
}
}
公共类{
专用双a、b、c、x、x1、x2;
公共二次方(){
a=b=c=1;
}
公共二次型(双a1、双b1、双c1){
a=a1;
b=b1;
c=c1;
}
公共双getA(){
返回a;
}
公共双getB(){
返回b;
}
公共双getC(){
返回c;
}
公共无效setA(双a2){
a=a2;
}
公共空间设置(双b2){
b=b2;
}
国家经济贸易委员会(双c2){
c=c2;
}
公共空间(双a3、双b3、双c3){
a=a3;
b=b3;
c=c3;
}
公共关系{
系统输出打印项次(a+“x^2+”+b+“x+”+c+”=0);
如果(数学功率(b,2)-4*a*c==0){
System.out.println(“解决方案:(“+oneSolution()+”);
}
如果(数学功率(b,2)-4*a*c>0){
System.out.println(“解决方案:(“+solution1()+”,“+solution2()+”);
}
if(数学功率(b,2)-4*a*c<0){
System.out.println(“解决方案:没有解决方案”);
}
}
公共双元解决方案(){
x=-b/2*a;
返回x;
}
公共双重解决方案1(){
x1=(-b+(数学sqrt(数学功率(b,2)-4*a*c))/(2*a);
返回x1;
}
公共双重解决方案2(){
x2=(-b-(数学sqrt(数学功率(b,2)-4*a*c))/(2*a);
返回x2;
}
}
尝试使用2。或2.0而不是2:2.0、4.0等。。。
如果这不起作用,请尝试2.0d等,或者声明您的常量:double two=2.0
也许这能让它工作,我不确定java处理,例如double/integer。。因此,您最好执行double/double,您的代码似乎可以工作:-)
我上了你的课,做了以下几件事:
类测试{
公共静态void main(字符串[]args){
二次型q=新二次型(1.0,2.0,-35.0);
q、 根();
}
}
结果是:
1.0x^2 + 2.0x + -35.0 = 0
Solutions: (5.0,-7.0)
这是正确的 对于
a
、b
和c
,您的测试用例值是多少?Java将文本转换为声明的变量类型,因此我认为情况并非如此。