Verschil float / double

Status
Niet open voor verdere reacties.

Cody

Gebruiker
Lid geworden
7 aug 2011
Berichten
20
Ik zit met een probleempje dat waarschijnlijk erg makkelijk op te lossen is. Voor school moet ik een simpel programma schrijven dat laat zien wat het verschil is tussen 'float' en 'double'. Double is volgens theorie dubbel zo precies maar in het programma merk ik geen verschil tussen beiden.

Bij volgende code:
[CPP]#include <iostream>
using namespace std;

int main() {
float cijfer1; double cijfer2;
cijfer1 = 11.123456789f;
cijfer2 = 11.123456789;

cout << cijfer1 << endl << cijfer2;

cin.get();
return 0;
}[/CPP]
Krijg ik twee keer als uitvoer: 11.1235, terwijl het ene getal een float is, en het andere een double. Kan iemand me vertellen wat ik precies verkeerd doe?

Bedankt!
 
Een double is preciezer dan een float, je kunt dat zo demonstreren.

Code:
	float x = 100.f / 17;
	double y = 100.0 / 17;

	float xtot = 0.f;
	double ytot = 0.f;

	for(unsigned int i = 0; i < 1000; i++)
	{
		xtot += x;
	}

	for(unsigned int i = 0; i < 1000; i++)
	{
		ytot += y;
	}

	cout << xtot << endl;
	cout << ytot << endl;

Output:

5882.33
5882.35

Het antwoord op de tweede rij is goed, terwijl het antwoord met de floats niet helemaal klopt, omdat float maar 7 decimalen precisie heeft en de double 15 of 16.
 
Laatst bewerkt:
Bedankt voor je reactie, deze maakt precies duidelijk wat ik wou weten! Ik kan dus best double gebruiken als de bewerkingen complexer beginnen te worden. :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan