cpx*_*cpx 2 python floating-point
为什么Python中的后一种情况确实不会产生结果3.3呢?
>>> 1.0 + 2.3
3.3
>>> 1.1 + 2.2
3.3000000000000003
Run Code Online (Sandbox Code Playgroud)
对我来说似乎没有任何意义.对于您所获得的相同结果的表示有什么限制,1.0 + 2.3但不是通过1.1 + 2.2?
引用文档:
不幸的是,大多数小数部分不能完全表示为二进制分数.结果是,通常,您输入的十进制浮点数仅由实际存储在机器中的二进制浮点数近似.
你偶然发现的是许多特质之一:
>>> 1.1 + 1.1
2.2
>>> 1.1 + 2.3
3.4
>>> 1.1 + 2.2
3.3000000000000003
Run Code Online (Sandbox Code Playgroud)
事实上,它是一个罕见的,我很难找到其他事件.这是另一个奇怪的:
>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17
Run Code Online (Sandbox Code Playgroud)
使用Python的decimal类会给你更好的结果.
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |