Atan2
これはつまり、正しい角度を出すためにはxおよびyの符号の情報がそれぞれ別個に必要とされると言うことであり、もし単にyをxで除算した場合は、その情報が失われてしまうというわけである。その点、atan2は細かいことを気にしなくてもyとxに代入すれば普通に正しい角度を返してくれるので便利である。
関数 atan2  ( y , x ) {\displaystyle \operatorname {atan2} (y,x)} の戻り値である角度θについては、xとyの値を変更しないままでも角度θに2πの任意の整数倍を加算することが可能であるため、つまり区間をちゃんと設定しないと戻り値の値が曖昧になってしまうため、関数atan2はその主値として、区間を(−π, π]としたものが戻り値として返ってくるようになっている(関数arctanの戻り値の区間が(−π/2 , π/2)である点との違いに注意)。角度θ は符号付き角度であり、反時計回りの角度は正、時計回りは負となる。具体的に言うと、もしy ≥ 0だった場合は[0, π] の区間にあり、もしy < 0だった場合には(−π, 0)の区間にある、と言う感じになるように関数 atan2  ( y , x ) {\displaystyle \operatorname {atan2} (y,x)} の内部で場合分けをしている。
定義 関数 atan2 は複素数 x + yi に偏角関数 arg を適用した時の主値を計算する。すなわち、atan2(y, x) = Pr arg(x + yi) = Arg(x + yi) である。偏角は、2π(原点を中心としたちょうど1周の回転に対応)の整数倍を加えたものも同じ角度になるが、atan2 を一意に定義するために範囲 ( − π , π ] {\displaystyle (-\pi ,\pi ]} の主値を使用する。つまり、−π < atan2(y, x) ≤ π とする。
標準の arctan 関数(値域 (−π/2, π/2))を用いて、次のように表すことができる:
atan2  ( y , x ) = { arctan  ( y x ) if x > 0 , arctan  ( y x ) + π if x < 0 and y ≥ 0 , arctan  ( y x ) − π if x < 0 and y < 0 , + π 2 if x = 0 and y > 0 , − π 2 if x = 0 and y < 0 , undefined if x = 0 and y = 0.