SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: manolo_83 en Miércoles 4 de Abril de 2007, 21:46

Título: Desbordamiento Punto Flotante Visual C++ 6
Publicado por: manolo_83 en Miércoles 4 de Abril de 2007, 21:46
Hola,

estoy programando en visual c++ 6.0 y tengo el problema de que no sé cómo detectar mediante excepciones las salidas de rango al operar con variables tipo double...

creo que _matherr soluciona este problema pero sólo para funciones propias de
math.h, pero qué hago con mis propias funciones???
por ejemplo en una de las funciones que calcula el factorial

double fact(long i){
   
   double resultado;
         
   if (i<0){
      resultado=0;
   }else if(i==0){
      resultado=1;
   }else{
      
      resultado=i;
      while (i!=1){
         i--;
         resultado=resultado*i;
      }
      //por lo visto en fact(171) se sobrecarga
      //fact(171)>MAX_DOUBLE con lo cual a partir
      //de ahí no hay cuenta que valga
   }
         
        return resultado;
}


¿Podríais ayudarme?

Un saludo
Título: Re: Desbordamiento Punto Flotante Visual C++ 6
Publicado por: SteelX en Martes 10 de Abril de 2007, 00:23
Claro en el archivo de cabecera <float.h> encontraras los maximos y los minimos de los doubles..

para el maximo se llama DBL_MAX y para el minimo se llama DBL_MIN


espero y te sirva