QUERY · ISSUE
f presentation type is not rounding
needs-info
In MicroPython (tested with version 1.9.3) the f presentation type (as in "{:.0f}".format(x)) is not rounding floating point numbers as CPython (tested with 3.7.2) does. Actually I'm not sure what it really does. It is not rounding, not flooring and not truncating as the following examples show:
print("{:.0f}".format(100.0))
CPython: >>> 100
MicroPython: >>> 100
print("{:.0f}".format(100.9))
CPython: >>> 101
MicroPython: >>> 100
print("{:.0f}".format(101.0))
CPython: >>> 101
MicroPython: >>> 100
print("{:.0f}".format(99.5))
CPython: >>> 100
MicroPython: >>> 99
print("{:.0f}".format(99.6))
CPython: >>> 100
MicroPython: >>> 100
CANDIDATE · PULL REQUEST
f-string thousands separator for float
py-core
Summary
Closes #11284
thousand separator was not implemented for floating point number
Testing
test the thousand separator for different float
test that the rounding up with the thousand separator (esp : 9,999.99 rounded to 10,000.0)
couldn't test that no buffer overflow occurs when using the thousand separator