title: Why do I get java.lang.NumberFormatException: For input string: "∞"?
body: <p>here's the scenario.
  I am dynamically generating the components to be displayed on the JPanel according to the data taken from the database.
  The user is prompted to enter an integer number and according to that some calculations are done. The output should be given as a decimal value. Therefore, i have assigned the answer to a double and formatted is using DecimalFormat.</p>
  
  <p>I get an error when i pass my double value to the format() method of DecimalFormat eventhough i didn't enter any value as 0.</p>
  
  <p>Here's the error</p>
  
  <blockquote>
    <p>java.lang.NumberFormatException: For input string: "∞"    at
    sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
      at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)   at
    java.lang.Double.parseDouble(Double.java:538)     at
    java.lang.Double.valueOf(Double.java:502)     at
    com.boarding.brdrsbllsys.view.Bills.displayOutput(Bills.java:358)     at
    com.boarding.brdrsbllsys.view.Bills.btnConfirmActionPerformed(Bills.java:186)
      at com.boarding.brdrsbllsys.view.Bills.access$200(Bills.java:27)    at
    com.boarding.brdrsbllsys.view.Bills$3.actionPerformed(Bills.java:123)
      at
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
      at
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
      at
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
      at
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
      at
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
      at java.awt.Component.processMouseEvent(Component.java:6533)    at
    javax.swing.JComponent.processMouseEvent(JComponent.java:3324)    at
    java.awt.Component.processEvent(Component.java:6298)  at
    java.awt.Container.processEvent(Container.java:2236)  at
    java.awt.Component.dispatchEventImpl(Component.java:4889)     at
    java.awt.Container.dispatchEventImpl(Container.java:2294)     at
    java.awt.Component.dispatchEvent(Component.java:4711)     at
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
      at
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
      at java.awt.Container.dispatchEventImpl(Container.java:2280)    at
    java.awt.Window.dispatchEventImpl(Window.java:2746)   at
    java.awt.Component.dispatchEvent(Component.java:4711)     at
    java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)    at
    java.awt.EventQueue.access$500(EventQueue.java:97)    at
    java.awt.EventQueue$3.run(EventQueue.java:709)    at
    java.awt.EventQueue$3.run(EventQueue.java:703)    at
    java.security.AccessController.doPrivileged(Native Method)    at
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      at
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
      at java.awt.EventQueue$4.run(EventQueue.java:731)   at
    java.awt.EventQueue$4.run(EventQueue.java:729)    at
    java.security.AccessController.doPrivileged(Native Method)    at
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)   at
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      at
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      at
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)</p>
  </blockquote>
  
  <p>The code snippet the error is generated,</p>
  
  <pre><code>if (gbc.gridx == 1 &amp;&amp; gbc.gridy == i + 1) {
                  textConstraints.gridx = 1;
                  textConstraints.gridy = i + 1;
                  newPanel.add(new JLabel(((JTextField) component).getText()), textConstraints);
                  int days = Integer.parseInt(((JTextField) component).getText().trim());
                  System.out.println("add num of days");
  
                  DecimalFormat df = new DecimalFormat("#.##");
  
                  textConstraints.gridx = 3;
                  double a=water / waterdays * days*1.0;
                  double boarderWater = Double.valueOf(df.format(a));//error is given in this line
                  newPanel.add(new JLabel(boarderWater + ""), textConstraints);
                  continue;
  
              }
  </code></pre>
  
  <p>Please consider that the variables <code>gbc</code> and <code>textConstraints</code> are GridBagConstraints objects, <code>water</code> is a double variable and <code>waterdays</code> and <code>days</code> are int variables.</p>
  
  <p>What should have been the problem with my code?</p>