title: Django strange DecimalField validation
body: <p>I got validation error when it shouldn't be raised. Here is the example:</p>
  
  <pre><code>from django.db.models import DecimalField
  
  f = DecimalField(max_digits=9, decimal_places=3)
  
  # got validation error here
  # `Ensure that there are no more than 3 decimal places`
  f.clean(value=12.123, model_instance=None)
  
  # returns Decimal('12.1230000')
  f.to_python(12.123)
  
  # this is absolutely fine
  f.clean(value=123456.123, model_instance=None)
  
  # returns Decimal('123456.123')
  f.to_python(123456.123)
  </code></pre>
  
  <p>Apparently, Django <code>DecimalField</code> uses wrong implementation of <code>to_python</code> which return excessive amount of trailing zeros at the end, and then validation fails.  </p>
  
  <p>What could be done with that?</p>