title: Variable return types of DecimalField
body: <p>I have a model thats something like this:</p>
  
  <pre><code>class Item(models.Model):
      value_a = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
      value_b = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
      value_c = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
  </code></pre>
  
  <p>Now suppose that I have the following item:</p>
  
  <pre><code>a = Item()
  a.value_a = 1.20
  a.value_b = 2
  a.value_c = Decimal('20.20')
  a.save()
  </code></pre>
  
  <p>When I access the object (after retrieving from DB) values I get:</p>
  
  <pre><code>a.value_a = 1.2 &lt;float&gt;
  a.value_b = 2 &lt;int&gt;
  a.value_c = Decimal('20.20')
  </code></pre>
  
  <p>Notice that my DB data type may vary from one to another.</p>
  
  <p>Why DecimalField does that? Can't I get the values always as python Decimal?</p>