title: Avoiding scientific notation
body: <p>I am experimenting using Go to interact with a Database and am running into 
  issues when dealing with Decimal fields.</p>
  
  <p>In this database most fields that are basically integer fields are 
  typed as decimal with 0 precision... for example:</p>
  
  <ul>
  <li>Date fields are stored in YYYYMMDD format as decimal(8, 0)</li>
  <li>Id numbers are stored as decimal(9, 0)</li>
  </ul>
  
  <p>Basically any int is stored as a decimal with 0 precision.</p>
  
  <p>What I am attempting is to fill fields in a struct....</p>
  
  <pre><code>type Record struct {
      ID          uint
      CHANGE_DATE uint
      ...
  }
  </code></pre>
  
  <p>But when I get the fields from the database, they often come back in a
  format like this but only if the number is long enough: 2.0141208e+07</p>
  
  <p>I have found that I can Scan into a float and then convert the float to
  an uint like this..</p>
  
  <pre><code>mydate := float32(0)
  
  for rows.Next() {
      r := Record{}
      row.Scan(&amp;.ID, &amp;mydate)
      myrecord.Change_date = uint(mydate)
  }
  </code></pre>
  
  <p>If the ID is a large enough number then ParseInt fails and I find I have to 
  do the float/int conversion as shown above.</p>
  
  <p>Since I have many fields (almost all numbers) that I would need to do this with, 
  I am wondering if there is a better way to go about this type conversion?</p>
  
  <p>It may also be worth mentioning that this is a database from a packaged ERP
  system, so changing the table definitions is not an option and the reason 
  I don't just make all fields float in Go is that I am trying to output json 
  and I get the scientific notation in the json output.</p>