• Lunes 18 de Noviembre de 2024, 03:42

Autor Tema:  Duda con atof  (Leído 2576 veces)

11_8_88

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Duda con atof
« en: Martes 9 de Noviembre de 2010, 11:12 »
0
Hola a todos, estoy usando la función atof para hacer casting de char a double, lo que necesito es que además de que me haga el casting comprobar que se un tipo compatible, es decir que si mi cadena no es un número que me de algún tipo de error que yo pueda tratar, por lo que he leido y he probado atof devuelve 0 en estos caso, pero me da un problema en el siguiente caso:

 char *p = "12adg"; al aplicar la función me devuelve 12 y yo necesitaría que devolviera 0 ó error para yo tratarlo.

¿hay alguna otra función que me pueda seervir?.

Un salduo y muchas gracias.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Duda con atof
« Respuesta #1 en: Martes 9 de Noviembre de 2010, 11:18 »
0
Prueba con strtof.

11_8_88

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: Duda con atof
« Respuesta #2 en: Martes 9 de Noviembre de 2010, 13:07 »
0
Gracias por la respuesta, pero estoy programando un PIC y no me permite usar esa funcion.

Gracias.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Duda con atof
« Respuesta #3 en: Martes 9 de Noviembre de 2010, 15:41 »
0
Dudo que no se pueda usar esa función. Viene en stdlib.h.

11_8_88

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: Duda con atof
« Respuesta #4 en: Martes 9 de Noviembre de 2010, 16:45 »
0
Si tienes toda la razon pertenece a esa librería, lo q pasa es que al ser un dipositivo propietario y de bajos recursos las librerías que aporta para ser progrmado están adaptadas y limitadas como es el caso de la función que me aconsejas, en realida solo busco validar que un dato que lo obtengo como un char * sea entero.

Un salduo y muchas gracias.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Duda con atof
« Respuesta #5 en: Martes 9 de Noviembre de 2010, 17:31 »
0
te vale con un bucle de nada!
Código: C++
  1.  
  2.  
  3. int i=0;
  4.  
  5. if (string_con_numero[0]=='+' || string_con_numero[0]=='-')
  6. i=1;
  7.  
  8. for (;string_con_numero[i]!=0;i++)
  9. {
  10. if (string_con_numero[i]>'9' || string_con_numero[i]<'0')
  11. return false;
  12. }
  13.  
  14. return true;
  15.  
  16.  
  17.  

11_8_88

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: Duda con atof
« Respuesta #6 en: Martes 9 de Noviembre de 2010, 21:22 »
0
muchas gracias, ya habia pensado en algo parecido pero creia que podría hacerlo con alguna función ya implementada.

Un saludo y gracias a los 2 por vuestra ayuda.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Duda con atof
« Respuesta #7 en: Miércoles 10 de Noviembre de 2010, 04:48 »
0
Tienes que revisar la documentación del compilador que estés usando, revisa qué funciones estándar están implementadas, si no hay ninguna, tendrás que hacerlo "a mano".
La imaginación es el límite.
Hardware & Software | Mexchip