C++ afronden
14 juni 2008 - 19:44   
geplaatst door: stijnschoor
Hallo

Kijk even naar de volgende code

subtotaalimport = inkoopprijs / 100 * importkosten + inkoopprijs;
prijsexbtw = subtotaalimport / 100 * winstmarge + subtotaalimport;
prijsinbtw = prijsexbtw / 100 * btw + prijsexbtw;
btw2 = prijsexbtw / 100 * btw;

cout << "Verkoopprijs (inclusief btw): " << prijsinbtw << endl;
cout << "Verkoopprijs (ex btw): " << prijsexbtw << endl;
cout << "btw: " << btw2 << endl;

Het is een deel van een programma in C++ om prijzen te berekenen. De bedoeling is om de prijsinbtw, prijsexbtw, btw2, subtotaalimport variablen(allemaal doubles) afteronden op twee decimalen.

Ik herrinner me zoiets als ciel, maar daar heb ik niks over kunnen vinden.

Enig idee?

Alvast bedankt

(Bewerkt door stijnschoor om 22:45, 14-06-2008)

(Bewerkt door stijnschoor om 22:49, 14-06-2008)

"What's in a name that we call a mac"
Shakespeare
C++ afronden
14 juni 2008 - 20:44    reactie #1
geplaatst door: Administrator
Ik ben geen C expert, maar in java weet ik dat je Math.round() hebt om af te ronden op helen.
En volgens mij is dat in C++ ook dezelfde functie. Kan ook gebruikt worden voor decimalen.
MacFreak Admin
- MacBook Pro 15inch
C++ afronden
15 juni 2008 - 08:02    reactie #2
geplaatst door: stijnschoor
Bedankt!

Maar er is een probleem, ik wil dat er twee cijfers achter de komma staan. Ik kan cout.precision(4); gebruiken maar dat helpt alleen voor getallen boven de tien. als ik bv 3 invul krijg ik bv 3.123. Weet iemand hoe dat moet.
Ik kan natuurlijk if gebruiken

if(btw2 > 9){cout.precision(4);}
maar dat wordt nogal lang.

Alvast Bedankt

"What's in a name that we call a mac"
Shakespeare
C++ afronden
15 juni 2008 - 08:17    reactie #3
geplaatst door: MacFrankie
maal 100
afronden (afkappen achter de decimale punt)
gedeeld door 100

Maar als het alleen om de display waarde gaat: %9999.99d

Op mijn werk heb ik al Windows, thuis wil ik geen systeembeheerder meer zijn!
C++ afronden
15 juni 2008 - 09:39    reactie #4
geplaatst door: stijnschoor
Bedankt

Ik gebruik setprecision(2). werkt goed!

"What's in a name that we call a mac"
Shakespeare