下面这段代码,输出后发生了神奇的事情:
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