#15789: floatformat filter works incorrectly when decimal precision is set low
--------------------------------------+-------------------------------
Reporter: akaihola | Owner: nobody
Type: Bug | Status: new
Milestone: | Component: Template system
Version: SVN | Severity: Normal
Resolution: | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 |
--------------------------------------+-------------------------------
Changes (by akaihola):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
What happens inside `floatformat` when evaluating
`decimal.getcontext().prec = 2 ; floatformat(1.23456789123, 2)` is
equivalent to this:
{{{
>>> import decimal
>>> decimal.getcontext().prec = 2
>>> d = decimal.Decimal('1.23456789123')
>>> exp = decimal.Decimal('0.01')
>>> d.quantize(exp, decimal.ROUND_HALF_UP)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/decimal.py", line 2358, in quantize
'quantize result has too many digits for current context')
File "/usr/lib/python2.6/decimal.py", line 3778, in _raise_error
raise error(explanation)
decimal.InvalidOperation: quantize result has too many digits for current
context
}}}
At this point, `floatformat` eats the exception and just returns the
original value without truncating the decimal part.
--
Ticket URL: <http://code.djangoproject.com/ticket/15789#comment:1>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.