Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
>>> print '%.100f' % (9999.0/10000)
0.9999000000000000110134124042815528810024261474609375000000000000000000000000000000000000000000000000
从原理上阐述下为什么产生这样的误差?
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
>>> print '%.100f' % (9999.0/10000)
0.9999000000000000110134124042815528810024261474609375000000000000000000000000000000000000000000000000
从原理上阐述下为什么产生这样的误差?
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答974 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
python有关浮点数的误差是这么说的:
见这里 https://docs.python.org/2/tutorial/floatingpoint.html
你可以试试Decimal, 估计底层没有完全实现一个完整的大数算法,实际上,我觉得这个并不完全是Python规范的内容,而是取决于平台和实现,你可以看下当前平台的float大小
python手册里如是说
上面说的这些都是CPython的实现,而这个在Jython中,又是另一番定义:
结论: 这个取决于平台实现。