text: Q:
  
  Fraction and If Statement not working Java
  
  Im working on a program I need to finish tonight, and basically it does a cheep version of factoring...
  The problem is, that its not giving me numbers, but NaN.
  Heres my code:
  Class 1(Part that deals with this program):
      System.out.println("--------------------------------------------------");
          System.out.println("                   ~Factoring~");
          System.out.println("--------------------------------------------------");
          System.out.println("in a polynomial, there are 3 important numbers used");
          System.out.println("to figure out x. they are a, b, and c, shown below.\n");
          System.out.println("\t\t1x^2 +2x -3");
          System.out.println("\t\t^     ^   ^");
          System.out.println("\t\ta     b   c");
          System.out.print("\nPlease type a, b, and c here[a b c]: ");
          int a = input.nextInt();
          int b = input.nextInt();
          int c = input.nextInt();
          mathey factor = new mathey(a,b,c, chooser);
          System.out.print(factor.solvefact());
  
  Class 2:
      public class mathey
      {
          double a,b,c;
  
  double solution1;
  double solution2;
  double discriminant;
  double x1 = 0;
  double x2 = 0;
    public mathey(int aN, int bN, int cN)
  {
      a = aN;
      b = bN;
      c = cN;
      discriminant = (b*b)-4*a*c;
      solvea();
      solveb();
  }
  public String solvea()
  {
      solution1 = (-1*b + Math.sqrt(discriminant))/(2*a);
      x1 = solution1;
      if(discriminant > 0) 
      { 
          return"x = " + solution1; 
  
      } 
      else if(discriminant == 0) 
      { 
          return "x =  " + solution1; 
      } 
      else 
      { 
          double root1complex = -b/(2*a); 
          double root1complex2 = Math.sqrt(-discriminant)/(2*a); 
  
          return root1complex + " + " + root1complex2 + " i "; 
      }
  }
      public String solveb()
  {
      solution2 = (-1*b - Math.sqrt(discriminant))/(2*a);
      x2 = solution2;
     if(discriminant > 0) 
      { 
          return"x = " + solution2; 
  
      } 
      else if(discriminant == 0) 
      { 
          return"x =  " + solution2; 
      } 
      else 
      { 
          double root1complex = -b/(2*a); 
          double root1complex2 = Math.sqrt(-discriminant)/(2*a); 
  
          return root1complex + " - " + root1complex2 + " i "; 
      }
  }
  public mathey(int aFact, int bFact ,int cFact, int chooser)
  {
      a = aFact; b = bFact; c = cFact;
      discriminant = (b*b)-4*a*c;
      solvea();
      solveb();
      solvefact();
  }
  public String solvefact()
  {
      String Answer = "";
      if((int)solution1 == solution1)
      {
           int wholeNum = (int)solution1/1;
           double numerator = (solution1%1) * 10;
           int denominator = 10;
           while(numerator > denominator) {
               denominator = denominator * 10;
              }   
           Answer+="("+denominator+"x + "+((denominator * wholeNum) + numerator)+")";
  
      }
      else
      {
          Answer +="( x + " +(solution1*-1) +")";
  
      }
      if((int)solution2 == solution2)
          {
              int wholeNum = (int)solution2/1;
              double numerator = (solution2%1) * 10;
              int denominator = 10;
              while(numerator > denominator) {
                  denominator = denominator * 10;
              }   
              Answer+="("+denominator+"x + "+((denominator * wholeNum) + numerator)+")";
  
          }
          else
          {
            Answer +="( x + " +(solution2*-1) +")";  
          } 
      return Answer;
  }
  
  Heres the output:
      Choose a Way to Solve
      1. Quadratic Formula
      2. Factoring
      Which Method? [1/2]: 2
      --------------------------------------------------
                         ~Factoring~
      --------------------------------------------------
      in a polynomial, there are 3 important numbers used
      to figure out x. they are a, b, and c, shown below.
  
      1x^2 +2x -3
      ^     ^   ^
      a     b   c
  
      Please type a, b, and c here[a b c]: 1 2 -3
      (10x + 10.0)(10x + -30.0)
  
  How Do I fix this, so I get the Output I should get? (x + 3.0)(x-1.0)
  
  A:
  
  In your 4-param constructor Mathey() (which is the constructor you are calling) you are redeclaring the variables a, b, c and assigning the values passed in to them, masking the instance variables which remain equal to 0 (the default). These local variables are only in scope in the constructor. In solveA() and solveB(), a, b, c again refer to the instance variables (which are all 0), so you're dividing by 2*a = 0, which makes solution1 and solution2 equal to NaN. 
  Change the line in the second constructor (if you continue to use it) from
  double a = aN, b = bN, c = cN;
  
  to
  a = aN, b = bN, c = cN;
  
  to solve the masking issue. You most likely want the instance variables to be doubles rather than ints, though, so change
  int a;int b;int c;
  
  to
  double a, b, c;
  
  (you can do multiple declarations of the same type like this).
  I don't know why you have two Mathey constructors, so either scrap the second one (what is chooser?) and just use the first, or make sure the second one also assigns a value to determinant.
  This should be a start, anyway.
  
  