首页 > 浮点数为什么通过 print() 输出后被四舍五入保留俩小数了

浮点数为什么通过 print() 输出后被四舍五入保留俩小数了

下面这段代码,输出后发生了神奇的事情:

a = 19.949999999999999
print(a)

----------

输出:19.95

我想输出原始的 19.949999999999999 呃。


精度问题,Python内部的浮点数用double类型,典型机器上8个字节,53bit有效位,合十进制有效数字约15位。
你的数字里小数点前后一共有17位有效数字,所以就被四舍五入了。
如果你想表示任意精度的数字,用decimal模块里Decimal类型,比如:

from decimal import Decimal
a=Decimal('19.949999999999999')
print a
【热门文章】
【热门文章】