基本的Python数字!

Nit*_*eti 1 python floating-point core

为什么0.1 + 0.1 + 0.1 - 0.35.5511151231257827e-17在Python 中进行求值 ?

Luk*_*ský 15

因为这是浮点数的工作原理.如果您需要精确的数字,请使用该decimal模块.如果要使用浮点数,则必须记住在显示它们时将它们舍入为特定的精度.

>>> print '%.2f' % (0.1+0.1+0.1-0.3,)
0.00
Run Code Online (Sandbox Code Playgroud)


Cla*_*diu 7

这通常是浮点数的问题.有关说明,请参阅维基百科上的此部分.粗略地说 - 存在舍入错误.请注意,您给我们的数字非常小 - 约为0.00000000000000005551115123.这是一篇关于这个主题的更多技术论文.