title: What is the bigger datatype than double in Java?
body: <p>I am developing an android app, A Calculator. 
  I have used double to save the operands. 
  As a calculator calculates bigger number, it's not showing the answer properly.
  For Example, If I enters 1234567890 * 1, it shows me the result 1234567936.
  I think it is due to the range issues of double.
  How to solve it? Help!</p>
  
  <p>This is a part of the actual code containing operator's functioning:</p>
  
  <pre><code>bAdd.setOnClickListener(new View.OnClickListener() { // Add Button
                                                                  // Listener
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try {
                      if (Switch == true) {
                          display.setText(display.getText() + "");
                          op1 += Float.valueOf(display.getText().toString());
                          check = 'a';
                          display.setText(" ");
                          display2.setText("+");
                      } else if (display.getText().toString() != " "
                              &amp;&amp; Switch == false) {
                          display.setText(display.getText() + "");
                          op1 = Float.valueOf(display.getText().toString());
                          check = 'a';
                          Switch = true;
                          display.setText(" ");
                          display2.setText("+");
                      } else {
                          throw new Exception();
                      }
                  } catch (Exception e) {
                      display.setText(" ");
                  }
  
              }
          });
          bSub.setOnClickListener(new View.OnClickListener() { // Subtract
                                                                  // Button
                                                                  // Listener
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try {
                      if (Switch == true) {
                          display.setText(display.getText() + "");
                          op1 -= Float.valueOf(display.getText().toString());
                          check = 's';
                          display.setText(" ");
                          display2.setText("-");
                      } else if (display.getText().toString() != " "
                              &amp;&amp; Switch == false) {
                          display.setText(display.getText() + "");
                          op1 = Float.valueOf(display.getText().toString());
                          check = 's';
                          Switch = true;
                          display.setText(" ");
                          display2.setText("-");
                      } else {
                          throw new Exception();
                      }
                  } catch (Exception e) {
                      display.setText(" ");
                  }
  
              }
          });
          bMul.setOnClickListener(new View.OnClickListener() { // Multiply
                                                                  // Button
                                                                  // Listener
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try {
                      if (Switch == true) {
                          display.setText(display.getText() + "");
                          op1 *= Float.valueOf(display.getText().toString());
                          check = 'm';
                          display.setText(" ");
                          display2.setText("x");
                      } else if (display.getText().toString() != " "
                              &amp;&amp; Switch == false) {
                          display.setText(display.getText() + "");
                          op1 = Float.valueOf(display.getText().toString());
                          check = 'm';
                          Switch = true;
                          display.setText(" ");
                          display2.setText("x");
                      } else {
                          throw new Exception();
                      }
                  } catch (Exception e) {
                      display.setText(" ");
                  }
  
              }
          });
          bDiv.setOnClickListener(new View.OnClickListener() { // Divide
                                                                  // Button
                                                                  // Listener
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try {
                      if (Switch == true) {
                          display.setText(display.getText() + "");
                          op1 /= Float.valueOf(display.getText().toString());
                          check = 'd';
                          display.setText(" ");
                          display2.setText("/");
                      } else if (display.getText().toString() != " "
                              &amp;&amp; Switch == false) {
                          display.setText(display.getText() + "");
                          op1 = Float.valueOf(display.getText().toString());
                          check = 'd';
                          Switch = true;
                          display.setText(" ");
                          display2.setText("/");
                      } else {
                          throw new Exception();
                      }
                  } catch (Exception e) {
                      display.setText(" ");
                  }
  
              }
          });
  </code></pre>
  
  <p>This a part of actual code containing equal's to functioning:</p>
  
  <pre><code>bEq.setOnClickListener(new View.OnClickListener() { // Equals To
                                                              // Button
                                                              // Listener
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  try {
                      if (display.getText().toString() != " ") {
                          double result;
                          int temp = 0;
                          op2 = Float.valueOf(display.getText().toString());
                          op1 = Math.floor(op1 * 100) / 100;
                          op2 = Math.floor(op2 * 100) / 100;
                          if (check == 'a') {
                              result = op1 + op2;
                              temp = (int) result;
                              if (result - temp == 0) {
                                  display.setText(String.valueOf(temp));
                              } else {
                                  display.setText(String.valueOf(result));
                              }
                          } else if (check == 's') {
                              result = op1 - op2;
                              temp = (int) result;
                              if (result - temp == 0) {
                                  display.setText(String.valueOf(temp));
                              } else {
                                  display.setText(String.valueOf(result));
                              }
                          } else if (check == 'm') {
                              result = op1 * op2;
                              temp = (int) result;
                              if (result - temp == 0) {
                                  display.setText(String.valueOf(temp));
                              } else {
                                  display.setText(String.valueOf(result));
                              }
                          } else if (check == 'd') {
                              if (op2 != 0) {
                                  result = op1 / op2;
                                  temp = (int) result;
                                  if (result - temp == 0) {
                                      display.setText(String.valueOf(temp));
                                  } else {
                                      display.setText(String.valueOf(result));
                                  }
                              } else {
                                  display.setText(" ");
                                  display2.setText("Invalid");
                              }
                          } else if (check == 'p') {
  
                              try {
                                  if (op2 == 0) {
                                      throw new Exception();
                                  } else {
                                      result = (op1 / op2) * 100;
                                      temp = (int) result;
                                      if (result - temp == 0) {
                                          display.setText(String
                                                  .valueOf(temp) + "%");
                                      } else {
                                          display.setText(String
                                                  .valueOf(result) + "%");
                                      }
                                  }
                              } catch (Exception e) {
                                  display.setText(" ");
                                  display2.setText("Invalid");
                              }
  
                          }
                      } else {
                          display.setText(" ");
                      }
                      Switch = false;
                      check = '\0';
                      display2.setText("=");
                  } catch (Exception e) {
                      display.setText(" ");
                  }
  
              }
          });
      } finally {
      }
  
  }
  </code></pre>