Da die offizielle Standardbibliothek die Konstante PI nicht definiert, müssen Sie sie selbst definieren. Die Antwort auf Ihre Frage "Wie kann ich PI erhalten, ohne es manuell zu definieren?" lautet also: "Gar nicht - oder Sie sind auf compilerspezifische Erweiterungen angewiesen.". Wenn du dir keine Sorgen um die Portabilität machst, kannst du im Handbuch deines Compilers nachsehen.
Mit C++ können Sie schreiben
const double PI = std::atan(1.0)*4;
aber die Initialisierung dieser Konstante ist nicht garantiert statisch. Der G++-Compiler behandelt diese mathematischen Funktionen jedoch als intrinsische Funktionen und ist in der Lage, diesen konstanten Ausdruck zur Kompilierzeit zu berechnen.
3 Stimmen
@tiwo, wollen Sie wissen, was der Unterschied ist zwischen
3.14
,3.141592
etatan(1) * 4
?46 Stimmen
Nebenbei bemerkt: cmath sollte in C++ anstelle von math.h verwendet werden, die für C bestimmt ist.
5 Stimmen
In loser Verbindung: siehe cise.ufl.edu/~manuel/obfuscate/pi.c wie man den Wert von PI direkt aus der Definition berechnet.
16 Stimmen
Es ist in C++20 angekommen! stackoverflow.com/a/57285400/895245