use*_*646 5 python floating-point precision floating-accuracy
我的代码:
a = '2.3'
Run Code Online (Sandbox Code Playgroud)
我想显示a为浮点值.
既然a是一个字符串,我试过:
float(a)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
2.2999999999999998
Run Code Online (Sandbox Code Playgroud)
我想要一个解决这个问题的方法.拜托,请帮助我.
我正在学习本教程.
Jon*_*eet 18
我认为它更多地反映了您对浮点类型的理解,而不是Python.由于这种"不准确"背后的原因,请参阅我的关于浮点数的文章(基于.NET,但仍然相关).如果需要保留精确的十进制表示,则应使用十进制模块.
这不是python的缺点,相反,它是浮点数存储在计算机上的方式的缺点.无论实现语言如何,您都会发现类似的问题.
你说你想'显示'A作为一个浮点,为什么不显示字符串?在视觉上它将与您的期望相同.
正如Jon所提到的,如果您的需求不仅仅是"显示"浮点数,您应该使用十进制模块来存储精确的表示.
优秀的答案解释了原因。我只是想从标准库中添加一个可能的实用解决方案:
>>> from decimal import Decimal
>>> a = Decimal('2.3')
>>> print a
2.3
Run Code Online (Sandbox Code Playgroud)
这实际上是一个(非常)Python 的常见问题解答,您可以在此处阅读答案。
| 归档时间: |
|
| 查看次数: |
27309 次 |
| 最近记录: |