You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
parse_decimal raises a surprising NumberFormatError when parsing numbers with thousand separator and non-zero decimals but trailing zeros, when strict mode is set:
In [1]: parse_decimal('3,400.60',locale='en',strict=True)`
---------------------------------------------------------------------------`
NumberFormatError Traceback (most recent call last)
<ipython-input-6-ccc56249e0c2> in <module>
----> 1 parse_decimal('3,400.60', locale='en', strict=True)
~/iit_repos/hrreport/.tox/test/lib/python3.10/site-packages/babel/numbers.py in parse_decimal(string, locale, strict)
765 ), suggestions=[proper])
766 else:
--> 767 raise NumberFormatError((
768 "%r is not a properly formatted decimal number. Did you mean %r? Or maybe %r?" %
769 (string, proper, proper_alt)
NumberFormatError: '3,400.60' is not a properly formatted decimal number. Did you mean '3,400.6'? Or maybe '3.4006'?`
Working variants:
In [2]: parse_decimal('3400.60', locale='en', strict=True)
Out[2]: Decimal('3400.60')
In [3]: parse_decimal('3,400.6', locale='en', strict=True)
Out[3]: Decimal('3400.6')
In [4]: parse_decimal('3,400.00', locale='en', strict=True)
Out[4]: Decimal('3400.00')
It is surprising and inconsistent that the presence or absence of the thousand separator should effect the result so.
Your environment
CPython versions tested on: 3.11.0, 3.10.6
Babel versions tested on: 2.10.3, 2.11.0
locales tested: 'en', 'de'
Operating system and architecture: 5.15.0-52-generic #58-Ubuntu x86_64 GNU/Linux (up-to-date Ubuntu 22.04 LTS)
Additional Information
Thanks for the great library!
The text was updated successfully, but these errors were encountered:
A bug in my implementation was reported upstream a year and a half ago (<python-babel/babel#928>), but I found out about that only yesterday while reviewing Babel's changelog.
Bug report
parse_decimal
raises a surprising NumberFormatError when parsing numbers with thousand separator and non-zero decimals but trailing zeros, when strict mode is set:Working variants:
It is surprising and inconsistent that the presence or absence of the thousand separator should effect the result so.
Your environment
5.15.0-52-generic #58-Ubuntu x86_64 GNU/Linux
(up-to-date Ubuntu 22.04 LTS)Additional Information
Thanks for the great library!
The text was updated successfully, but these errors were encountered: