ironpython2 icon indicating copy to clipboard operation
ironpython2 copied to clipboard

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

Open mickp opened this issue 2 years ago • 1 comments

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)]

mickp avatar Jan 13 '24 00:01 mickp

I the fix is basically https://github.com/IronLanguages/ironpython3/pull/1643 if anyone feels like backporting.

slozier avatar Jan 13 '24 00:01 slozier