今天爱分享给大家带来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