• Sábado 22 de Junio de 2024, 08:48

Autor Tema:  Error "Invalid floating point operation"  (Leído 13234 veces)

bezujov

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Error "Invalid floating point operation"
« en: Martes 16 de Marzo de 2010, 19:34 »
0
Buenas tardes.
Estoy programando una parte de código con bastantes operaciones simples (multiplicaciones y divisiones). Compila correctamente, pero cuando lo ejecuto me sale el error "Invalid floating point operation". No hay división por cero. Me da incluso si sustituyo la división por una multiplicación.
Estoy un poco desesperado porque no le veo ninguna lógica al error.
A ver si alguien tiene alguna idea de lo que puede estar pasando.

Gracias

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #1 en: Miércoles 17 de Marzo de 2010, 01:13 »
0
Puede ser algun tipo de overflow o tal vez underflow. Tendrías que capturar dichas excepciones y agregar código para procesar esos casos especiales.

http://en.wikipedia.org/wiki/Arithmetic_underflow
http://en.wikipedia.org/wiki/Arithmetic_overflow

el bare

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: mx
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #2 en: Miércoles 17 de Marzo de 2010, 05:54 »
0
que tal amigo, pon el codigo que te marca error para darnos una idea mas amplia.... :D y ver si hay algun error... :comp:

Saludos...

bezujov

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #3 en: Jueves 18 de Marzo de 2010, 18:44 »
0
No se si tiene algo que ver con el código. Estoy un poco desesperado. El error lo da en ejecución del programa (al compilar no da error).
Con los mismos datos introducidos al programa hay veces que da error y veces que no. Es desesperante.

Pongo una función donde me está dando errores.



int AceroLam::ObtenerClaseHebFlexoCompresionY(int perfil,double Nd){

   int clase=0;
   if (Fy==235) {
      clase=1;
   }
   if (Fy==275.0) {
      if (perfil<=600)
         clase=1;
      if (perfil==600){
         if (Nd<1968.0)
            clase=1;
         else
            clase=2;
      }
   }
   if (Fy==355) {
      if (perfil==600){
         clase=3;
         if (Nd<2605.0)
            clase=2;
         if (Nd<1965.0)
            clase=1;
      }
      if (perfil==550){
         if (Nd<1986.0)
            clase=1;
         else
            clase=2;
      }
      if (perfil==500){
         if (Nd<2001.0)
            clase=1;
         else
            clase=2;
      }

      if (perfil<=450)
         clase=1;

   }
   return clase;

}

bezujov

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #4 en: Jueves 18 de Marzo de 2010, 18:45 »
0
Vaya, al cortar y pegar el texto se han "ido" las tabulaciones
¿como lo hago para que quede más legible?

Unsire

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #5 en: Domingo 21 de Marzo de 2010, 20:12 »
0
Revisa también el separador de decimales en tu configuración regional, una vez me pasó que yo ponía 3.46 y mi teclado estaba configurado para interpretar 3,46.
parece que tu código está bien, un consejo, siempre usa variables double aunque estés introduciendo datos enteros.

bezujov

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Error "Invalid floating point operation"
« Respuesta #6 en: Domingo 28 de Marzo de 2010, 18:48 »
0
Gracias por las respuestas.

He pasado todas las variables a double. He modificado alguna cosilla del código y de momento ha dejado de darme el error.
A ver si no vuelve a pasar.

Un saludo.