现象
>>> 33/22
1.5
>>> 3.3/2.2
1.4999999999999998
>>> 1-0.1
0.9
>>> 1-0.9
0.09999999999999998
原因
- 大多数的十进制小数都不能精确地表示为二进制小数
- 就像十进制小数无法精确的表示 1/3
- 官方文档对此有专门论述: 浮点算术的争议与限制
解决方案
>>> from decimal import Decimal
>>> print(Decimal('3.3')/Decimal('2.2'))
1.5
>>> print(Decimal('1')-Decimal('0.9'))
0.1
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。