This question already has answers here:
How can I force division to be floating point? Division keeps rounding down to 0?
(11 个回答)
7年前关闭。
为什么这个示例中的内置运算符
数学函数
相反,在执行
对这种行为有什么解释吗?它们会被视为错误吗?
使用浮点值,或使用
(11 个回答)
7年前关闭。
为什么这个示例中的内置运算符
4**(1/2)
(这是一个平方根运算)作为结果返回 1
而不是 2
作为它应该预期的?如果不会返回可接受的结果,它应该会引发错误,但 Python 会继续工作而不会发生任何崩溃。至少在 Python 2.7.4 64 位发行版中。数学函数
pow(4,1/2)
也会发生这种情况,该函数返回 1
且没有错误。相反,在执行
4**(0.5)
时,它返回的结果是正确的 2.0
,尽管它混合了整数和浮点数而没有任何警告。战俘也是如此。对这种行为有什么解释吗?它们会被视为错误吗?
最佳答案
1/2
使用地板除法,而不是浮点除法,因为两个操作数都是整数:
>>> 1/2
0
使用浮点值,或使用
from __future__ import division
切换到 Python 3 行为,其中 /
运算符 总是 使用浮点除法:>>> 1/2.0
0.5
>>> 4**(1/2.0)
2.0
>>> from __future__ import division
>>> 1/2
0.5
>>> 4**(1/2)
2.0