# ATAN2()

<< ATAN() | FB 2.5 Language Reference | BIN_AND() >>

`ATAN2()`

*Added in:* 2.1

**Description**

Returns the angle whose sine-to-cosine ratio is given by the two arguments, and whose sine and cosine signs correspond to the signs of the arguments. This allows results across the entire circle, including the angles `-#/2 and #/2`

.

*Result type:* `DOUBLE PRECISION`

**Syntax**

ATAN2 (y, x)

- The result is an angle in the range
`[-#, #]`

. - If
`x`

is negative, the result is`#`

if`y`

is`0`

, and`-#`

if`y`

is`-0`

. - If both
`y`

and`x`

are`0`

, the result is meaningless. Starting with Firebird 3, an error will be raised if both arguments are`0`

.

*Important:* If the external function `ATAN2`

is declared in your database, it will override the internal function. To make the internal function available, `DROP`

or `ALTER`

the external function (UDF).

*Notes:*

- A fully equivalent description of this function is the following:
`ATAN2(y, x)`

is the angle between the positive X-axis and the line from the origin to the point`(x, y)`

. This also makes it obvious that`ATAN2(0,0)`

is undefined. - If
`x`

is greater than 0,`ATAN2(y, x)`

is the same as`ATAN(y/x)`

. - If both sine and cosine of the angle are already known,
`ATAN2(sin, cos)`

gives the angle.

back to top of page

<< ATAN() | FB 2.5 Language Reference | BIN_AND() >>