Wie man eine PI-Konstante in C++ verwendet
-
Verwendung des Makros
M_PI
aus der GNU C-Bibliothek -
Verwendung von die Konstante
std::numbers::pi
aus C++20 - Deklarieren Sie Ihre eigene PI-Konstante Variable
In diesem Artikel werden verschiedene Möglichkeiten zur Deklaration und Verwendung des PI-Konstantenwerts in C++ vorgestellt.
Verwendung des Makros M_PI
aus der GNU C-Bibliothek
Es verwendet vordefinierte Makroausdrücke aus der C-Standard-Mathematikbibliothek. Die Bibliothek definiert mehrere gemeinsame mathematische Konstanten, die in der folgenden Tabelle aufgeführt sind. Das Makro M_PI
kann einer Fließkomma-Variablen zugewiesen oder als Literalwert in Berechnungen verwendet werden. Beachten Sie, dass wir die Manipulatorfunktion Präzision einstellen
verwenden, die zur Steuerung der Genauigkeit, mit der die Ausgabezahl angezeigt wird, verwendet werden kann.
Konstante | Definition |
---|---|
M_E |
Die Basis der natürlichen Logarithmen |
M_LOG2E |
Der Logarithmus zur Basis 2 von M_E |
M_LOG10E |
Der Logarithmus zur Basis 10 von M_E |
M_LN2 |
Der natürliche Logarithmus von 2 |
M_LN10 |
Der natürliche Logarithmus von 10 |
M_PI |
Pi, das Verhältnis des Umfangs eines Kreises zu seinem Durchmesser |
M_PI_2 |
Pi geteilt durch zwei |
M_PI_4 |
Pi geteilt durch vier |
M_1_PI |
Der Kehrwert von pi (1/pi) |
M_2_PI |
Der zweifache Kehrwert von pi |
M_2_SQRTPI |
Das Zweifache des Kehrwerts der Quadratwurzel von pi |
M_SQRT2 |
Die Quadratwurzel aus zwei |
M_SQRT1_2 |
Der Kehrwert der Quadratwurzel aus zwei (auch die Quadratwurzel aus 1/2) |
#include <cmath>
#include <iomanip>
#include <iostream>
using std::cout;
using std::endl;
int main() {
double pi1 = M_PI;
cout << "pi = " << std::setprecision(16) << M_PI << endl;
cout << "pi * 2 = " << std::setprecision(16) << pi1 * 2 << endl;
cout << "M_PI * 2 = " << std::setprecision(16) << M_PI * 2 << endl;
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
pi = 3.141592653589793
pi * 2 = 6.283185307179586
M_PI * 2 = 6.283185307179586
Verwendung von die Konstante std::numbers::pi
aus C++20
Seit dem C++20-Standard unterstützt die Sprache die mathematischen Konstanten, die in der Kopfzeile <numbers>
definiert sind. Diese Konstanten sollen eine bessere plattformübergreifende Konformität bieten, aber das ist noch in den Anfängen, und verschiedene Compiler unterstützen es möglicherweise noch nicht. Die vollständige Liste der Konstanten kann hier eingesehen werden .
#include <iomanip>
#include <iostream>
#include <numbers>
using std::cout;
using std::endl;
int main() {
cout << "pi = " << std::setprecision(16) << std::numbers::pi << endl;
cout << "pi * 2 = " << std::setprecision(16) << std::numbers::pi * 2 << endl;
cout << endl;
return EXIT_SUCCESS;
}
pi = 3.141592653589793
pi * 2 = 6.283185307179586
Deklarieren Sie Ihre eigene PI-Konstante Variable
Alternativ kann eine benutzerdefinierte Konstantenvariable mit PI-Wert oder nach Bedarf eine beliebige andere mathematische Konstante deklariert werden. Dies kann entweder mit Hilfe eines Makroausdrucks oder des constexpr
-Spezifizierers für eine Variable erreicht werden. Der folgende Beispielcode demonstriert die Verwendung beider Methoden.
#include <iomanip>
#include <iostream>
using std::cout;
using std::endl;
#define MY_PI 3.14159265358979323846
constexpr double my_pi = 3.141592653589793238462643383279502884L;
int main() {
cout << std::setprecision(16) << MY_PI << endl;
cout << std::setprecision(16) << my_pi << endl;
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook