Ich möchte die PI-Konstante und trigonometrische Funktionen in einem C++-Programm verwenden. Ich erhalte die trigonometrischen Funktionen mit include <math.h>
. Allerdings scheint es in dieser Header-Datei keine Definition für PI zu geben.
Wie kann ich PI erhalten, ohne es manuell zu definieren?
Auf einigen (insbesondere älteren) Plattformen (siehe Kommentare unten) müssen Sie möglicherweise
#define _USE_MATH_DEFINES
und dann die notwendige Header-Datei einbinden:
#include <math.h>
und der Wert von pi kann über aufgerufen werden:
M_PI
In meiner math.h
(2014) ist er definiert als:
# define M_PI 3.14159265358979323846 /* pi */
aber überprüfen Sie Ihre math.h
für mehr. Ein Auszug aus der "alten" math.h
(im Jahr 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.
*/
Wie auch immer:
auf neueren Plattformen (zumindest auf meinem 64 Bit Ubuntu 14.04) muss ich die _USE_MATH_DEFINES
nicht definieren
Auf (neueren) Linux-Plattformen gibt es auch long double
-Werte, die als GNU-Erweiterung bereitgestellt werden:
In Standard-C++ gibt es keine Konstante für PI.
Viele C++ Compiler definieren M_PI
in cmath
(oder in math.h
für C) als eine Nicht-Standard-Erweiterung. Möglicherweise müssen Sie #define _USE_MATH_DEFINES
angeben, bevor Sie es sehen können.