IronLanguages / ironpython2

Implementation of the Python programming language for .NET Framework; built on top of the Dynamic Language Runtime (DLR).

Home Page:http://ironpython.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`float` format specifier throws on `int`, unlike in cpython.

mickp opened this issue · comments

commented

Description

If an int is passed to a float format specifier, IronPython treats the float specifier as an int specifier and throws, whereas cpython treats the int as a float.

Steps to Reproduce

>>> "{:.3f}".format(1)

Expected behavior:
Verified in cpython 2.7.1.7

>>> "{:.3f}".format(1)
'1.000'
>>>

Actual behavior: [What actually happened]

>>> "{:.3f}".format(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Precision not allowed in integer format specifier
>>>

Versions

IronPython 2.7.12 (2.7.12.1000)
[.NETFramework,Version=v4.5 on .NET Framework 4.8.9195.0 (64-bit)]

I the fix is basically IronLanguages/ironpython3#1643 if anyone feels like backporting.