New submission from felix.engelmann <[email protected]>:
As described in https://www.python.org/dev/peps/pep-0327/#rounding-algorithms
round-half-up: If the discarded digits represent greater than or equal to half
(0.5) then the result should be incremented by 1; otherwise the discarded
digits are ignored.
Rounding 9.95 to 1 decimal with ROUND_HALD_UP results in 9.9 instead of 10.0:
Decimal(9.95).quantize(Decimal('1.1'),ROUND_HALF_UP)
Out[49]: Decimal('9.9')
It does not matter at wich position this rounding with influence on another
digit happens:
Decimal(9.995).quantize(Decimal('1.11'),ROUND_HALF_UP)
Out[50]: Decimal('9.99')
It is a specific problem with the 5, because 9.96 works as expected
Decimal(9.96).quantize(Decimal('1.1'),ROUND_HALF_UP)
Out[40]: Decimal('10.0')
System:
Python 3.6.4
import decimal
decimal.__version__ : '1.70'
----------
components: Library (Lib)
messages: 312546
nosy: felix.engelmann
priority: normal
severity: normal
status: open
title: decimal ROUND_HALF_UP not according to spec for 9.95 to 10.0
type: behavior
versions: Python 3.6
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32908>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com