Eryk Sun added the comment:
A CPython float uses the platform's double-precision floating point. The
significand of a double has 53 bits of precision, which is 15 decimal digits of
precision. However, uniquely representing a double in decimal requires 17
digits, which is why the str and repr format is extended with the otherwise
insignificant "65" digits. For output, you can format the number with
sys.float_info.dig decimal digits. For example:
>>> sys.float_info.dig
15
>>> '%0.*g' % (sys.float_info.dig, 8/3)
'2.66666666666667'
----------
nosy: +eryksun
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue28345>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com