我的代码:
a = '2.3'
我想显示a
为浮点值。
由于a
是一个字符串,我尝试了:
float(a)
我得到的结果是:
2.2999999999999998
我想要这个问题的解决方案。请帮助我。
我正在关注本教程。
我的代码:
a = '2.3'
我想显示a
为浮点值。
由于a
是一个字符串,我尝试了:
float(a)
我得到的结果是:
2.2999999999999998
我想要这个问题的解决方案。请帮助我。
我正在关注本教程。
我认为它更多地反映了您对浮点类型的理解,而不是 Python。有关这种“不准确”背后的原因,请参阅我关于浮点数的文章(基于 .NET,但仍然相关)。如果你需要保持精确的十进制表示,你应该使用十进制模块。
这不是 python 的缺点,而是浮点数在计算机上存储方式的缺点。无论实现语言如何,您都会发现类似的问题。
你说你想'显示' A 作为一个浮点数,为什么不只显示字符串呢?从视觉上看,它将与您的期望相同。
正如乔恩所提到的,如果您的需求不仅仅是“显示”浮点数,您应该使用十进制模块来存储精确的表示。
解释原因的优秀答案。我只想从标准库中添加一个可能的实用解决方案:
>>> from decimal import Decimal
>>> a = Decimal('2.3')
>>> print a
2.3
这实际上是 Python 的(非常)常见问题解答,您可以在此处阅读答案。