• Viernes 1 de Noviembre de 2024, 10:28

Autor Tema:  Desbordamiento Punto Flotante Visual C++ 6  (Leído 1082 veces)

manolo_83

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Desbordamiento Punto Flotante Visual C++ 6
« en: Miércoles 4 de Abril de 2007, 21:46 »
0
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

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Desbordamiento Punto Flotante Visual C++ 6
« Respuesta #1 en: Martes 10 de Abril de 2007, 00:23 »
0
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
Inside the code