Python中字符串格式化程序的默认舍入模式是什么?

Python中字符串格式化程序的默认舍入模式是什么?,python,python-2.7,Python,Python 2.7,结果看起来很奇怪。有时是地板,有时是天花板。 Python中字符串格式化程序的默认舍入模式是什么?因此,默认情况下%f的精度只有6位。因此,数据四舍五入到小数点后的6位 引用该表注释部分的内容 替代形式使结果始终包含小数 点,即使后面没有数字 精度决定小数点后的位数 默认为6 因此,默认情况下,%f将只有6位精度。因此,数据四舍五入到小数点后的6位 引用该表注释部分的内容 替代形式使结果始终包含小数 点,即使后面没有数字 精度决定小数点后的位数 默认为6 浮点数始终是近似值0.8407745不完

结果看起来很奇怪。有时是地板,有时是天花板。 Python中字符串格式化程序的默认舍入模式是什么?

因此,默认情况下
%f
的精度只有6位。因此,数据四舍五入到小数点后的6位

引用该表注释部分的内容

替代形式使结果始终包含小数 点,即使后面没有数字

精度决定小数点后的位数 默认为6

因此,默认情况下,
%f
将只有6位精度。因此,数据四舍五入到小数点后的6位

引用该表注释部分的内容

替代形式使结果始终包含小数 点,即使后面没有数字

精度决定小数点后的位数 默认为6


浮点数始终是近似值
0.8407745
不完全是
0.8407745

>>> '%f'%0.8407745
'0.840774'
>>> '%f'%0.8407755
'0.840776'
>>> '%f'%-0.8407755
'-0.840776'
>>> '%f'%-0.8407745
'-0.840774'
因此,默认的格式化程序,四舍五入到6位小数,正确地将该值四舍五入到
0.840774

0.8407755
另一方面是:

>>> '%.53f' % 0.8407745
'0.84077449999999998020427938172360882163047790527343750'
因此,应将其四舍五入


请参阅,以获得有关原因的详细介绍。(摘要:浮点数由二进制分数之和表示)。

浮点数始终是近似值
0.8407745
不完全是
0.8407745

>>> '%f'%0.8407745
'0.840774'
>>> '%f'%0.8407755
'0.840776'
>>> '%f'%-0.8407755
'-0.840776'
>>> '%f'%-0.8407745
'-0.840774'
因此,默认的格式化程序,四舍五入到6位小数,正确地将该值四舍五入到
0.840774

0.8407755
另一方面是:

>>> '%.53f' % 0.8407745
'0.84077449999999998020427938172360882163047790527343750'
因此,应将其四舍五入


请参阅,以获得有关原因的详细介绍。(总结:浮点数由二进制分数的和表示)。

因此,在格式化为字符串之前,将浮点值四舍五入更有意义。不,不是这样。格式设置负责值的正确舍入。在这里,先舍入并没有什么区别。所以在格式化之前将浮点值舍入为字符串更有意义。不,不是这样。格式设置负责值的正确舍入。先四舍五入在这里没有什么区别。