当我1/2使用Python时为什么它会给我零?即使我强迫它float(1/2)仍然是零.为什么?我怎么能绕过它呢?
当我给arctan(1/2)我得到0作为答案,但当我给arctan(.5)我得到正确的答案!
因为Python 2.x对整数使用整数除法,所以:
1/2 == 0
Run Code Online (Sandbox Code Playgroud)
评估为True.
你想做:
1.0/2
Run Code Online (Sandbox Code Playgroud)
或做一个
from __future__ import division
Run Code Online (Sandbox Code Playgroud)
首先, 1/2是整数除法.直到Python 3.0.
>>> 1/2
0
>>> 1.0/2.0
0.5
>>>
Run Code Online (Sandbox Code Playgroud)
第二,math.atan2用于此类事情.
>>> math.atan2(1,2)
0.46364760900080609
>>> math.atan(.5)
0.46364760900080609
Run Code Online (Sandbox Code Playgroud)