您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-将浮点数限制为两位小数

Python-将浮点数限制为两位小数

你遇到了浮点数的老问题,不是所有的数字都能精确地表示。命令行只是向你显示内存中的完整浮点形式。 对于浮点表示,舍入的版本是相同的数字。由于计算机是二进制的,它们将浮点数存储为整数,然后除以2的幂,因此13.95将以类似于1256504296036838/(2**53)的方式表示。 双精度数字有53位(16位)的精度,而常规浮点数有24位(8位)的精度。Python中的浮点类型使用双精度存储值。

例如,

125650429603636838/(2**53) 13.949999999999999

234042163/(2**24) 13.949999988079071

a=13.946 print(a) 13.946 print(“%.2f” % a) 13.95 round(a,2) 13.949999999999999 print(“%.2f” % round(a,2)) 13.95 print(“{0:.2f}”.format(a)) 13.95 print(“{0:.2f}”.format(round(a,2))) 13.95 print(“{0:.15f}”.format(round(a,2))) 13.949999999999999 如果仅排两个小数位(例如,显示货币值),那么你有两个更好的选择:

使用整数并以美分而不是美元存储值,然后除以100转换为美元。 或使用定点数(如小数)。

python 2022/1/1 18:23:45 有511人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶