Vishal
Vishal

Reputation: 110

Coding a Math Equation

So I'm trying to code this equation using java:

enter image description here

I'm taking a, b, and c from the user. This is the code I have so far:

import java.util.Scanner;
class QaudraticFunction{
    public static void main(String []args){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a: ");
        double a = input.nextDouble();

        System.out.println("Enter b: ");
        double b = input.nextDouble();

        System.out.println("Enter c: ");
        double c = input.nextDouble();

        double val1 = (Math.pow(b,2.0)) - (4.0*a*c);
        double discriminant = Math.sqrt(val1);
        double val2 = (-b)-(discriminant);
        double r2 = val2/(2.0*a);

        System.out.println("r2 = " + r2);
    }
}

I think my issue is a logical error because the program compiles and runs correctly. When I enter the values for a, b and c. I get r2 = NaN

Upvotes: 0

Views: 1082

Answers (1)

blr
blr

Reputation: 968

Two possible reasons you are seeing a NaN.

The denominator is 0. This is only possible if a is set to 0 or 0.0. I'm going to assume that's not the case.

The other possibility is that you are performing a square root of a negative number, which (in java) is a NaN. See Math.sqrt javadoc for more details.

If the argument is NaN or less than zero, then the result is NaN.

Upvotes: 3

Related Questions