title: Having troubles with doubles
body: <p>after long hard work, I have finally completed (almost) my java menu program. However, I am having trouble getting my return change function to work at the end of my code. It is giving very odd numbers. Any ideas?</p>
  
  <p>Code:</p>
  
  <pre><code>import java.io.*;
  import java.text.*;
  import java.util.*;
  
  public class JavaBurger
  {
      public static double amountowed = 0;
      public static double amount;
      public static double amount1 = 0;
      public static double amount2 = 0;
      public static double amount3 = 0;
      public static double amount4 = 0;
      public static double amount5 = 0;
      public static double amount6 = 0;
      public static double amount7 = 0;
      public static double amount8 = 0;
      public static double amount9 = 0;
      public static double amount10 = 0;
  
  
      static ArrayList MenuItems = new ArrayList();
  
      public static void main(String[] args)
      {
          InputStreamReader inp = null;
          BufferedReader input = null;
          int nOption  = 0;
      DecimalFormat x = new DecimalFormat("###.##");
  
  
          try
          {
              inp = new InputStreamReader(System.in);
              input = new BufferedReader(inp);
              while(true)
              {
          System.out.println("Choose a Menu Option");
                  System.out.println("1. Burger - 13.49");
                  System.out.println("2. Pasta - 16.79");
                  System.out.println("3. Salad - 13.49");
                  System.out.println("4. Salmon - 18.99");
                  System.out.println("5. Chicken - 16.99");
                  System.out.println("6. Nachos - 13.99");
          System.out.println("7. Soup - 6.99");
          System.out.println("8. Fajitas - 18.49");
          System.out.println("9. Ribs - 23.99");
          System.out.println("10. Calamari-9.99");
          System.out.println("11. Clear Order");
          System.out.println("12. Finish Order");
                  System.out.println("\nChoose an option(1-12) &gt;&gt; ");
          System.out.println("Subtotal: $" + x.format(amount));
          System.out.println("Total: $" + x.format(amount * 1.13));
          System.out.println("For error correction, choose an option and enter a negative value to void the item.");
  
                  nOption = Integer.parseInt(input.readLine());
  
                  switch(nOption)
                  {
                      case 1:
                          Burger(input);
                          break;
              case 2:
                          Pasta(input);
                          break;
              case 3:
                          Salad(input);
                          break;
              case 4:
                          Salmon(input);
                          break;
              case 5:
                          Chicken(input);
                          break;
                      case 6:
                          Nachos(input);
                          break;
                      case 7:
                          Soup(input);
                          break;
                      case 8:
                          Fajitas(input);
                          break;
                      case 9:
                          Ribs(input);
                          break;
                      case 10:
                          Calamari(input);
                          break;
              case 11:
              Clear(input);
              break;
              case 12:
              Finish(input);
              break;
  
                  }
              }
          }
          catch(Exception exp)
          {
          }
      }
  
      private static void Burger(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many Burgers would you like? ");
          int a = Integer.parseInt(input.readLine());
  
          double aaa = Math.pow(1 + a, a);
              amount1 = (a * 13.49);
          amount += amount1;
  
  
                  break;
          }
      }
  
       private static void Pasta(BufferedReader input) throws IOException
      {
          while(true)
          {
  
              System.out.println("How many orders of Pasta would you like? ");
          int b = Integer.parseInt(input.readLine());
  
          double bbb = Math.pow(1 + b, b);
              amount2 = (bbb * 16.79);
          amount += amount2;
  
  
                  break;
          }
      } private static void Salad(BufferedReader input) throws IOException
      {
          while(true)
          {
  
              System.out.println("How many Salads would you like? ");
          int c = Integer.parseInt(input.readLine());
  
          double ccc = Math.pow(1 + c, c);
              amount3 = (ccc * 13.49);
          amount += amount3;
  
  
                  break;
          }
      } private static void Salmon(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many orders of Salmon would you like? ");
          int d = Integer.parseInt(input.readLine());
  
          double ddd = Math.pow(1 + d, d);
              amount4 = (ddd * 18.99);
          amount += amount4;
  
  
                  break;
          }
      } private static void Chicken(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many orders of Chicken would you like? ");
          int e = Integer.parseInt(input.readLine());
  
          double eee = Math.pow(1 + e, e);
              amount5 = (eee * 16.99);
          amount += amount5;
  
  
                  break;
          }
      } private static void Nachos(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many orders of Nachos would you like? ");
          int f = Integer.parseInt(input.readLine());
  
          double fff = Math.pow(1 + f, f);
              amount6 = (fff * 13.99);
          amount += amount6;
  
                  break;
          }
      } private static void Soup(BufferedReader input) throws IOException
      {
          while(true)
          {
  
              System.out.println("How many orders of Soup would you like? ");
          int g = Integer.parseInt(input.readLine());
  
          double ggg = Math.pow(1 + g, g);
              amount7 = (ggg * 6.99);
          amount += amount7;
  
                  break;
          }
      } private static void Fajitas(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many orders of 2 Fajitas would you like? ");
          int h = Integer.parseInt(input.readLine());
  
          double hhh = Math.pow(1 + h, h);
              amount8 = (hhh * 18.49);
          amount += amount8;
  
                  break;
          }
      } private static void Ribs(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many racks of Ribs would you like? ");
          int i = Integer.parseInt(input.readLine());
  
          double iii = Math.pow(1 + i, i);
              amount9 = (iii * 23.99);
          amount += amount9;
  
                  break;
          }
      } private static void Calamari(BufferedReader input) throws IOException
      {
  
          while(true)
          {
  
              System.out.println("How many orders of Calamari would you like? ");
          int j = Integer.parseInt(input.readLine());
  
          double jjj = Math.pow(1 + j, j);
              amount10 = (jjj * 9.99);
          amount += amount10;
  
                  break;
          }
      } private static void Clear(BufferedReader input) throws IOException
      {
  
      while(true)
      {
  
          amount = 0;
  
          break;
      }
      } private static void Finish(BufferedReader input) throws IOException
      {
  
      while(true)
      {
  
          DecimalFormat x = new DecimalFormat("###.##");
          System.out.println("Amount Due");
          System.out.println("**********");
          System.out.println("Subtotal:" + x.format(amount));
          System.out.println("Total:" + x.format(amount * 1.13));
          System.out.println("Please enter the amount tendered");
          int k = Integer.parseInt(input.readLine());
          double kk = Math.pow(1 + k, k);
          amountowed = ((amount * 1.13) - kk);
          if(amountowed == 0)
          {
          System.out.println("Thanks for paying with exact change!");
          System.exit(0);
          }
          else if(amountowed &lt; 0)
          {
          System.out.println("Change due:" + x.format(amountowed * -1.00));
          System.exit(0);
          }
          else
          {
          System.out.println("Amount still owed:" + x.format(amountowed * -1.00));
          }
      }
      }
  }
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>Choose a Menu Option
  1. Burger - 13.49
  2. Pasta - 16.79
  3. Salad - 13.49
  4. Salmon - 18.99
  5. Chicken - 16.99
  6. Nachos - 13.99
  7. Soup - 6.99
  8. Fajitas - 18.49
  9. Ribs - 23.99
  10. Calamari-9.99
  11. Clear Order
  12. Finish Order
  
  Choose an option(1-12) &gt;&gt;
  Subtotal: $0
  Total: $0
  For error correction, choose an option and enter a negative value to void the it
  em.
  1
  How many Burgers would you like?
  1
  Choose a Menu Option
  1. Burger - 13.49
  2. Pasta - 16.79
  3. Salad - 13.49
  4. Salmon - 18.99
  5. Chicken - 16.99
  6. Nachos - 13.99
  7. Soup - 6.99
  8. Fajitas - 18.49
  9. Ribs - 23.99
  10. Calamari-9.99
  11. Clear Order
  12. Finish Order
  
  Choose an option(1-12) &gt;&gt;
  Subtotal: $13.49
  Total: $15.24
  For error correction, choose an option and enter a negative value to void the it
  em.
  12
  Amount Due
  **********
  Subtotal:13.49
  Total:15.24
  Please enter the amount tendered
  100
  Change due:270481382942152600000000000000000000000000000000000000000000000000000
  00000000000000000000000000000000000000000000000000000000000000000000000000000000
  0000000000000000000000000000000000000000000000000000
  </code></pre>
  
  <p>Why am I getting wacky numbers for the change due?</p>