Wie man eine PI-Konstante in C++ verwendet

Jinku Hu 12 Oktober 2023
  1. Verwendung des Makros M_PI aus der GNU C-Bibliothek
  2. Verwendung von die Konstante std::numbers::pi aus C++20
  3. Deklarieren Sie Ihre eigene PI-Konstante Variable
Wie man eine PI-Konstante in C++ verwendet

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;
}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - C++ Math