Closed
Description
Bug report
Bug description:
c.f.
>>> format(float(Fraction(1, 3)), '.016f') '0.3333333333333333'
Looking on docs, I think that float formatting better conforms to the specification.
Similar issue is valid for the width:
>>> format(float(Fraction(1, 3)), '0030.016f') '0000000000000.3333333333333333' >>> format(Fraction(1, 3), '0030.016f') Traceback (most recent call last): File "<python-input-3>", line 1, in <module> format(Fraction(1, 3), '0030.016f') ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/fractions.py", line 577, in __format__ raise ValueError( ...<2 lines>... ) ValueError: Invalid format specifier '0030.016f' for object of type 'Fraction'
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs
- gh-130662: accept leading zeros in precision/width for Fraction's formatting #130663
- gh-130662: refine width/precision specification in format-spec #130717
- gh-130662: accept leading zeros in precision/width for Decimal's formatting #132549
- [3.14] gh-130662: Accept leading zeros in precision/width for Fraction's formatting (GH-130663) #135026
- [3.14] gh-130662: Accept leading zeros in precision/width for Fraction's formatting (GH-130663) #136361
- [3.14] gh-130662: Accept leading zeros in precision/width for Decimal's formatting (GH-132549) #136362