玩蛇网提供最新Python编程技术信息以及Python资源下载!

浮点数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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19416.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月22日 - 11时35分17秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules