C/Visual C - No funciona redondeo

 
Vista:

No funciona redondeo

Publicado por yolanda (3 intervenciones) el 02/04/2009 16:55:35
Buenas,

Estoy utilizando la funcion modf(numero, &entera) para separar un double en parte decimal y entera; el código que tengo es:

double TFormCrearFactura::redondeoDec(double numero, int dec)
{
double entera, fraccionaria;
int aux;

fraccionaria = modf(numero, &entera);

aux= int(fraccionaria * 100);

if (fraccionaria == 50)
{
entera = entera /100;
}
else if (fraccionaria < 0.5)
{
entera = entera /100;
}
else
{
entera = (entera + 1)/100;
}

return(entera);
} // End redondeo()

Si a número le doy el valor de 501.5 fraccionaria me devuelve 0.5 pero aux toma el valor de 49 en lugar de 50; sin embargo si a número le doy el valor 801.5 fraccionaria me devuelve 0.5 y aux toma el valor de 50. ¿Alguien sabe porqué ocurre esto?

Saludos y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder