Python float - str - 浮动怪异

Python float - str - float weirdness(Python float - str - 浮动怪异)
本文介绍了Python float - str - 浮动怪异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

>>> float(str(0.65000000000000002))

0.65000000000000002

>>> float(str(0.47000000000000003))

0.46999999999999997     ???

这里发生了什么?如何将 0.47000000000000003 转换为字符串并将结果值转换回浮点数?

What is going on here? How do I convert 0.47000000000000003 to string and the resultant value back to float?

我在 Windows 上使用 Python 2.5.4.

I am using Python 2.5.4 on Windows.

推荐答案

str(0.47000000000000003)'0.47'float('0.47') 可以是 0.46999999999999997.这是由于浮点数的表示方式(参见这篇 wikipedia 文章)

str(0.47000000000000003) give '0.47' and float('0.47') can be 0.46999999999999997. This is due to the way floating point number are represented (see this wikipedia article)

注意:float(repr(0.47000000000000003))eval(repr(0.47000000000000003)) 会给你预期的结果,但你应该使用 十进制,如果你需要精确的话.

Note: float(repr(0.47000000000000003)) or eval(repr(0.47000000000000003)) will give you the expected result, but you should use Decimal if you need precision.

这篇关于Python float - str - 浮动怪异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

【网站声明】本站部分内容来源于互联网,旨在帮助大家更快的解决问题,如果有图片或者内容侵犯了您的权益,请联系我们删除处理,感谢您的支持!

相关文档推荐

Python 3 Float Decimal Points/Precision(Python 3 浮点小数点/精度)
Converting Float to Dollars and Cents(将浮点数转换为美元和美分)
What are some possible calculations with numpy or scipy that can return a NaN?(numpy 或 scipy 有哪些可能的计算可以返回 NaN?)
Python float to ratio(Python浮动比率)
How to manage division of huge numbers in Python?(如何在 Python 中管理大量数字的除法?)
mean from pandas and numpy differ(pandas 和 numpy 的意思不同)