编程语言
首页 > 编程语言> > Python float – str – float怪异

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