decimalen

Status
Niet open voor verdere reacties.

Waster

Gebruiker
Lid geworden
27 aug 2006
Berichten
9
In mijn programma laat ik twee getallen met elkaar delen. Nou rondt het programma het altijd af op hele getallen, maar ik wil dat het getal twee decimalen weergeeft:

cout << a*b/c;

Geeft bijvoorbeeld 16, maar ik wil 16.32 bijv. Hij rondt trouwens altijd naar beneden af :confused:
 
als je van een van de integers een double/float maakt wordt het resultaat ook double/float. zo dus:

Code:
cout << (double)(a) * b / c;

Afronden op 2 cijfers na de komma is een ander probleem. ik heb de STL nog niet doorspit, maar heb hier nu gwn zelf een functie geschreven die het nodige zou moeten doen

Code:
double rondafop2(double d)
{
        int voor, na;
        voor = static_cast<int>(d);
        na = static_cast<int>(d * 100);
        na -= voor * 100;
        double result = voor + na/100.0;
        return result;
}

--Johan
 
Even aangepast voor andere precisies, maar waarschijnlijk nog niet bullet-proof.

double d = het af te ronden getal
int i = aantal cijfers na de komma

Code:
#include <cmath> //pow-functie
double rondaf(double d, int i)
{
        int voor, na;
        voor = static_cast<int>(d);
        na = static_cast<int>(d * pow(10, i));
        na -= voor * pow(10, i);
        double result = voor + na/(double)(pow(10, i));
        return result;
}

--Johan
 
Afronden is niet het grootste probleem. Maar ik wilde de uitkomst opslaan als double, maar dat werkte niet. Dit werkt wel, bedankt :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan