Python float – str – float怪异
作者:互联网
>>> float(str(0.65000000000000002))
0.65000000000000002
>>> float(str(0.47000000000000003))
0.46999999999999997 ???
这里发生了什么?
如何将0.47000000000000003转换为字符串并将结果值转换为浮点数?
我在Windows上使用Python 2.5.4.
解决方法:
str(0.47000000000000003)给’0.47′,float(‘0.47’)可以是0.46999999999999997.
这是由于表示浮点数的方式(请参阅此wikipedia文章)
注意:float(repr(0.47000000000000003))或eval(repr(0.47000000000000003))将为您提供预期结果,但如果您需要精度,则应使用Decimal.
标签:python,string,floating-point,floating-accuracy,ieee-754 来源: https://codeday.me/bug/20190916/1806495.html