title: Large string of numbers becomes scientific form when saving into an SQL database
body: <p>I'm trying to save a vary large string of numbers into an sql database and for numbers above about 10 figures, when exporting it, it is in scientific form e.g. 3.5674E15.</p>
  
  <p>With numbers below this there is no problem but I need to export the values from the database in exact form e.g. 45739473920284 and not in scientific form as some of the last few figures are lost.</p>
  
  <p>This is my database adapter:</p>
  
  <pre><code>public class DBAdapterWorkouts {
  private static final String KEY_ROWID = "id";
  private static final String KEY_NAME = "name";
  private static final String KEY_DATE = "date";
  private static final String KEY_EXERCISESTRING = "exercisestring";
  private static final String KEY_SUPERSETSTRING = "supersetstring";
  private static final String TAG = "DBAdapter2";
  
  private static final String DATABASE_NAME = "CustomWorkoutsDB";
  private static final String DATABASE_TABLE = "customworkouts";
  private static final int DATABASE_VERSION = 1;
  
  private static final String DATABASE_CREATE = "create table if not exists customworkouts (id integer primary key autoincrement, " + "name string, date long, exercisestring string, supersetstring string);";
  
  private DatabaseHelper DBHelper;
  private SQLiteDatabase db;
  
  public DBAdapterWorkouts(Context ctx) {
      DBHelper = new DatabaseHelper(ctx);
  }
  
  //---opens the database---
  public DBAdapterWorkouts open() throws SQLException {
      db = DBHelper.getWritableDatabase();
      return this;
  }
  
  //---closes the database---
  public void close() {
      DBHelper.close();
  }
  
  //---insert a record into the database---
  public long insertRecord(String name, long date, String exercisestring, String supersetstring) {
      ContentValues initialValues = new ContentValues();
      initialValues.put(KEY_NAME, name);
      initialValues.put(KEY_DATE, date);
      initialValues.put(KEY_EXERCISESTRING, exercisestring);
      initialValues.put(KEY_SUPERSETSTRING, supersetstring);
      return db.insert(DATABASE_TABLE, null, initialValues);
  }
  
  public void deleteName(int id){
      open();
      String query = "DELETE FROM " + DATABASE_TABLE + " WHERE "
              + KEY_ROWID + " = '" + id + "'";
      Log.d(TAG, "deleteName: query: " + query);
      db.execSQL(query);
      close();
  }
  
  //---deletes all records---
  public void reset() throws SQLException {
      db.delete(DATABASE_TABLE, null,null);
      db.execSQL("DELETE FROM SQLITE_SEQUENCE WHERE NAME = '" + DATABASE_TABLE + "'");
      this.DBHelper.onCreate(db);
  }
  
  //---retrieves all the records---
  public Cursor getAllRecords() {
      return db.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_NAME, KEY_DATE, KEY_EXERCISESTRING, KEY_SUPERSETSTRING}, null, null, null, null, null, null);
  }
  
  //---retrieves a particular record---
  public Cursor getRecord(long rowId) throws SQLException {
      Cursor mCursor =
              db.query(true, DATABASE_TABLE, new String[]{KEY_ROWID, KEY_NAME, KEY_DATE, KEY_EXERCISESTRING, KEY_SUPERSETSTRING}, KEY_ROWID + "=" + rowId, null, null, null, null, null, null);
      if (mCursor != null) {
          mCursor.moveToFirst();
      }
      return mCursor;
  }
  
  private static class DatabaseHelper extends SQLiteOpenHelper {
      DatabaseHelper(Context context) {
          super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
  
      @Override
      public void onCreate(SQLiteDatabase db) {
          try {
              db.execSQL(DATABASE_CREATE);
          } catch (SQLException e) {
              e.printStackTrace();
          }
      }
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
  
      }
  }
  }
  </code></pre>
  
  <p>This is in my activity where the data is saved and loaded from the database:</p>
  
  <pre><code>            dbWorkouts.open();
              Cursor c = dbWorkouts.getAllRecords();
              boolean exists = false;
              try {
                  if (c.moveToFirst()){
                      do {
                          if (c.getString(1).equals(etxtWorkoutName.getText().toString())){
                              exists = true;
                          }
                      }while (c.moveToNext());
                  }
              } catch (Exception e){
                  e.printStackTrace();
              }
              if (exists){
                  Toast.makeText(getActivity(), "Please choose a workout name that doesn't already exist", Toast.LENGTH_LONG).show();
              }else{
                  Calendar calendar = Calendar.getInstance();
                  long date = calendar.getTimeInMillis();
                  String name = etxtWorkoutName.getText().toString();
                  dbWorkouts.insertRecord(name, date, stringExerciseOrder, stringSupersets);
                  Toast.makeText(getActivity(), "Workout saved!", Toast.LENGTH_LONG).show();
                  Log.w("app", stringExerciseOrder);
              }
              dbWorkouts.close();
  </code></pre>
  
  <p>In the above case, the log produces the number that I am looking to save (a long string of numbers named stringExerciseOrder). The issue arises when I use the following code to retrieve the value.</p>
  
  <pre><code>dbWorkouts.open();
      Cursor c = dbWorkouts.getAllRecords();
      try {
          if (c.moveToFirst()){
              do {
                  Log.w("app", c.getString(3));
              }while (c.moveToNext());
          }
      } catch (Exception e){
          e.printStackTrace();
      }
      dbWorkouts.close();
  </code></pre>
  
  <p>The output of the second log is in scientific form.</p>
  
  <p>Any help would be appreciated.</p>
  
  <p>Thanks</p>