Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Dubbelprecisiegetallen | Numerieke Gegevenstypen
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
C++ Gegevenstypen
Sectie 2. Hoofdstuk 5
single

single

bookDubbelprecisiegetallen

Veeg om het menu te tonen

De precisie van float (7 decimalen) is niet altijd voldoende. Maar C++ biedt een oplossing: double. Met een precisie van 15 decimalen is het veel nauwkeuriger dan float. De syntaxis voor het gebruik van double blijft hetzelfde:

double.

double.

copy
1
double num = 3.14159265359;

Standaard drukt cout drijvende-kommagetallen af met een precisie van 6 significante cijfers. Hierdoor zie je geen verschil tussen float en double. Om een hogere precisie in te stellen, kan opnieuw std::cout << std::setprecision(15); worden gebruikt (dit stelt de precisie in op 15 significante cijfers).

Vergeet niet <iomanip> te includen om std::setprecision() te kunnen gebruiken.

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; }

Hoe wordt een betere precisie bereikt in double?

Dit wordt bereikt door meer geheugen te gebruiken. Een float-type gebruikt 4 bytes, terwijl een double 8 bytes geheugen gebruikt.

Er bestaat ook een long double-type. De grootte hiervan varieert van 8 bytes (net als een double) tot 16 bytes. Je kunt de grootte van de long double op jouw systeem controleren met de volgende code:

sizeof.h

sizeof.h

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

Daarnaast dient u L toe te voegen aan een waarde die u toewijst (anders wordt de waarde toegewezen met de precisie van double). Bekijk het voorbeeld:

double.h

double.h

copy
1
long double pi = 3.141592653589793238462643L;
Note
Opmerking

Als je nullen in de uitvoer krijgt, controleer dan of je de waarden exact hebt toegekend zoals hierboven getoond (1/3., 1/3.L).

Taak

Swipe to start coding

Je moet (1/3)² berekenen met verschillende gegevenstypen. Ken hiervoor de waarde van 1/3 toe aan variabelen van het type float, double en long double. Druk vervolgens deze getallen, vermenigvuldigd met zichzelf, af.

  1. Initialiseer een float-variabele met de waarde 1/3.;
  2. Initialiseer een double-variabele met de waarde 1/3.;
  3. Initialiseer een long double-variabele met de waarde 1/3.L.
    opmerking: long double gebruikt 16 bytes geheugen op ons systeem
  4. Stel de precisie van de uitvoer in op 25 decimalen met setprecision(25);
  5. Druk al deze waarden, vermenigvuldigd met zichzelf, af.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 5
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt