Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Doppelpräzisionszahlen | Numerische Datentypen
Practice
Projects
Quizzes & Challenges
Quizze
Challenges
/
C++-Datentypen
Abschnitt 2. Kapitel 5
single

single

bookDoppelpräzisionszahlen

Swipe um das Menü anzuzeigen

Die Genauigkeit von float (7 Dezimalstellen) reicht nicht immer aus. Aber C++ bietet eine Lösung: double. Mit einer Genauigkeit von 15 Dezimalstellen ist es deutlich präziser als float. Die Syntax für die Verwendung von double bleibt unverändert:

double.

double.

copy
1
double num = 3.14159265359;

Standardmäßig gibt cout Fließkommazahlen mit einer Genauigkeit von 6 signifikanten Stellen aus. Daher ist kein Unterschied zwischen float und double sichtbar. Um eine höhere Genauigkeit einzustellen, kann erneut std::cout << std::setprecision(15); verwendet werden (dies setzt die Genauigkeit auf 15 signifikante Stellen).

Nicht vergessen, <iomanip> einzubinden, um std::setprecision() nutzen zu können.

main.cpp

main.cpp

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

Wie wird eine höhere Genauigkeit bei double erreicht?

Es wird einfach mehr Speicher verwendet. Ein float-Typ belegt 4 Byte, während ein double 8 Byte Speicher benötigt.

Es gibt auch einen long double-Typ. Seine Größe reicht von 8 Byte (wie ein double) bis zu 16 Byte. Die Größe von long double auf Ihrem System kann mit folgendem Code überprüft werden:

sizeof.h

sizeof.h

copy
1
std::cout << sizeof(long double);

Zusätzlich sollte beim Zuweisen eines Wertes ein L hinzugefügt werden (andernfalls wird der Wert mit der Genauigkeit von double zugewiesen). Siehe das Beispiel:

double.h

double.h

copy
1
long double pi = 3.141592653589793238462643L;
Note
Hinweis

Wenn im Ausgabefeld Nullen erscheinen, stellen Sie sicher, dass Sie die Werte genau wie oben gezeigt zugewiesen haben (1/3., 1/3.L).

Aufgabe

Swipe to start coding

Sie sollen (1/3)² mit verschiedenen Datentypen berechnen. Weisen Sie dazu den Wert 1/3 Variablen vom Typ float, double und long double zu. Geben Sie anschließend diese Zahlen jeweils mit sich selbst multipliziert aus.

  1. Initialisieren Sie eine float-Variable mit dem Wert 1/3.;
  2. Initialisieren Sie eine double-Variable mit dem Wert 1/3.;
  3. Initialisieren Sie eine long double-Variable mit dem Wert 1/3.L.
    Hinweis: long double belegt auf unserem System 16 Byte Speicher
  4. Setzen Sie die Ausgabepräzision auf 25 Dezimalstellen mit setprecision(25);
  5. Geben Sie alle diese Werte jeweils mit sich selbst multipliziert aus.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt