Etan - 8 months ago 65

C++ Question

I want to use the PI constant and trigonometric functions in some C++ program. I get the trigonometric functions with

`include <math.h>`

How can I get PI without defining it manually?

Answer

On some (especially older) platforms (see the comments below) you might need to

```
#define _USE_MATH_DEFINES
```

and then include the necessary header file:

```
#include <math.h>
```

and the value of pi can be accessed via:

```
M_PI
```

In my `math.h`

(2014) it is defined as:

```
# define M_PI 3.14159265358979323846 /* pi */
```

but check your `math.h`

for more. An extract from the "old" `math.h`

(in 2009):

```
/* Define _USE_MATH_DEFINES before including math.h to expose these macro
* definitions for common math constants. These are placed under an #ifdef
* since these commonly-defined names are not part of the C/C++ standards.
*/
```

However:

on newer platforms (at least on my 64 bit Ubuntu 14.04) I do not need to define the

`_USE_MATH_DEFINES`

On (recent) Linux platforms there are

`long double`

values too provided as a GNU Extension:`# define M_PIl 3.141592653589793238462643383279502884L /* pi */`

Source (Stackoverflow)