Python如何将浮点型数字的小数限制为两位【面试题详解】

今天爱分享给大家带来Python如何将浮点型数字的小数限制为两位【面试题详解】,希望能够帮助到大家。
你陷入了一个浮点型数据的很老的错误,即所有的数字都不能表示。命令行只能告诉你内存中的全长小数。在浮点里你四舍五入到一个同样的数字。自从计算机是二进制开始,他们把浮点数保存为整数然后除一个2的幂。两位精确的数字有53比特(16位)的精度,常规的浮点数有24比特(8位)的精度。floating point in python uses double precision保存值。

举个例子:


>>>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来得到元。或者用修正过的小数,比如decimal

原文链接:https://blog.itblood.com/4427.html,转载请注明出处。
0
蕾娜莉丝的欲望/レナリスインデザイア/Renalith In Desire[Ver1.1+存档][PC+安卓/2.10G] [RPG/援交/中出/怀孕/机翻+AI文本/动态]
蕾娜莉丝的欲望/レナリスインデザイア/Renalith In Desire[Ver1.1+存档][PC+安卓/2.10G] [RPG/援交/中出/怀孕/机翻+AI文本/动态]
5分钟前 有人购买 去瞅瞅看

站点公告

显示验证码
没有账号?注册  忘记密码?