single
Dubbelprecisiegetallen
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.
1double 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
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
1std::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
1long double pi = 3.141592653589793238462643L;
Als je nullen in de uitvoer krijgt, controleer dan of je de waarden exact hebt toegekend zoals hierboven getoond (1/3., 1/3.L).
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.
- Initialiseer een
float-variabele met de waarde1/3.; - Initialiseer een
double-variabele met de waarde1/3.; - Initialiseer een
long double-variabele met de waarde1/3.L.
opmerking:long doublegebruikt 16 bytes geheugen op ons systeem - Stel de precisie van de uitvoer in op 25 decimalen met
setprecision(25); - Druk al deze waarden, vermenigvuldigd met zichzelf, af.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.