Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/03/2009 #1


Convertir Cadena de caracteres en un float
Hola a todos!

Necesito saber si hay alguna función o algo que me realice lo siguiente:

Tengo una cadena de caracteres declarada con "unsigned char cad[4], por ejemplo" y en cada una de esas 4 posiciones existirá un valor. Pues bien, necesito unir los 4 valores esos para formar una sola variable de tipo "float".
He estado mirando y existen funciones como atoi(convierte cadena Char en Int), atof(convierte cadena Char en double) y atol(convierte cadena Char en long), pero no he visto ninguna función que convierta Unsigned Char(que no Char solamente) a float.

Espero que me echéis una mano.

Un saludo.
28/03/2009 #2


usa atof. Si es una cadena char q contiene "Numeros" es decir simbolos, no hay problema.
saludos
28/03/2009 #3


Es que el problema es que con atof, tengo que usar la cadena de caracteres con el tipo char, y el que necesito usar es unsigned char, si no no me funciona...y con unsigned char, la función atof no funciona...¿alguna otra posibilidad?
28/03/2009 #4

Avatar de Eduardo

atof no funciona porque la cadena no tiene un cero al final, no porque sea unsigned char.

Declara "unsigned char cad[5]" y usa los primeros 4 bytes para los caracteres y en el 5to dejas con un cero ( cad[4]=0 )
Despues llamas atof(cad) .
28/03/2009 #5

Avatar de Dr. Zoidberg

Eduardo dijo:
atof no funciona porque la cadena no tiene un cero al final, no porque sea unsigned char.

Declara "unsigned char cad[5]" y usa los primeros 4 bytes para los caracteres y en el 5to dejas con un cero ( cad[4]=0 )
Despues llamas atof(cad) .
Aparte de eso, es probable que tenga un warning de tipo incorrecto, así que creo que es necesario castear el argumento (aparte de agregarle el '\0'). Algo como atof( (char *)cad)

De todas formas, siempre es mas simple usar un sscanf, pero bue....

Saludos!
28/03/2009 #6


Mejor crea tu propio convertidor es algo sensillo de acer.
28/03/2009 #7

Avatar de Meta

cristian_elect dijo:
Mejor crea tu propio convertidor es algo sensillo de acer.
Siempre y cuando sepa como hacerlo.

Lo desconocido nada es fácil, sólo cuando aprendas a hacerlo.
28/03/2009 #8


Vale, lo intentaré. Gracias!
28/03/2009 #9


Acabo de acer una funcion pero el compilador me lo redondea a los valores de cienmilecima
voy a tratar de mejorarlo.
28/03/2009 #10

Avatar de Meta

cristian_elect dijo:
Acabo de hacer una función pero el compilador me lo redondea a los valores de cienmilécima.
Voy a tratar de mejorarlo.
Esperando resultados.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.