为什么np.sqrt(1-0.5 ** 2)不能按预期返回0.75?

时间:2019-07-11 16:53:25

标签: python python-3.x numpy sqrt

考虑Python代码:

  

将numpy导入为np

     

print(np.sqrt(1-0.5 ** 2))

这将返回以0.86开头的长十进制,而我希望它返回0.75。为什么会有差异?

3 个答案:

答案 0 :(得分:3)

我不知道您为什么期望它返回0.75。详细考虑您在做什么:

1 - 0.5**2

平方0.5,然后从1中减去。如预期那样,得出0.75。

np.sqrt(1 - 0.5**2)
np.sqrt(0.75)

现在,numpy取平方根0.75,然后返回0.8660254037844386。应该这样做,因为那是0.75的平方根。

答案 1 :(得分:1)

因为1-0.5**20.75,平方根fo 0.75~0.86

答案 2 :(得分:1)

一步一步地发生:

import numpy as np

exp = (0.5**2)

print(exp)

diff = 1 - exp

print(diff)

print(np.sqrt(diff))
相关问题