TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: electroipod en 14 de Noviembre de 2011, 20:50:44
-
Hola tengo un problema de conversion de float a cadena y quisiera saber como puedo hacer para solucionarlo el problema es el siguiente:
ejm:
float dato1 =23;
float dato2=12;
char cadena[20];
dato1=dato1*dato2;
floattostr(dato1,cadena);
lcd_out(1,1,cadena);
al momento de convertirlo y visualizarlo por un lcd el resultado de cadena es 275.9999 cuando deberia ser 276, como puedo, solucionar esto gracias por sus respuestas.
estoy utilizando el Mikroc pro 4.6
-
275.999999999.. = 276
aqui la demostracion http://es.wikipedia.org/wiki/0,9_peri%C3%B3dico
Mostrame como imprimis la cadena por favor, hay algunas cosas que podes hacer para q el printf te muestre mas o menos decimales.
Saludos!!
-
como dice gera, tu resultado esta bien, no uso mikroc pero checa en como imprimir los datos para que te redondee los decimales
-
Ummm en MikroC podrias formatear el resultado y usar no se fprintf() para no mostras decimales.........pero porque usas FloatToStr(), si ninguno de los numeros es float??????????
no deberias usar IntToStr()???
Saludos..........
-
es un ejemplo ya que esas variables pueden ser numeros decimales y no solo puedo multiplicarlas sino tambien dividirlas e igual obtendria numeros decimales ahora en mikroc no se utiliza printf() esa funcion no hay en este IDE, hasta ahora sigo buscando la forma de redondear el resultado para que no me aparesca esos .9999.
-
En la version 5.30 veo esta funcion, muy parecida a printf.
/* esto extraido de la ayuda de MikroC Pro v5.30*/
void PrintOut(void (*prntoutfunc)(char ch), const char *f,...);
PrintOut is used to format data and print them in a way defined by the user through a print handler function.
Parameters :
prntoutfunc: print handler function
f: format string
The f argument is a format string and may be composed of characters, escape sequences, and format specifications. Ordinary characters and escape sequences are copied to the print handler in order in which they are interpreted. Format specifications always begin with a percent sign (%) and require additional arguments to be included in the function call.
The format string is read from left to right. The first format specification encountered refers to the first argument after the f parameter and then converts and outputs it using the format specification. The second format specification accesses the second argument after f, and so on. If there are more arguments than format specifications, the extra arguments are ignored. Results are unpredictable if there are not enough arguments for the format specifications. The format specifications have the following format:
% [flags] [width] [.precision] [{ l | L }] conversion_type
Each field in the format specification can be a single character or a number which specifies a particular format option. The conversion_type field is where a single character specifies that an argument is interpreted as a character, string, number, or pointer, as shown in the following table:
-
Gracias por el dato pero he bajado esta version y solo me permite un programa no mayor de 2K, buscare si encuentro el 5.3 full, se nota que esta ultima version es mucho mas completo que el 4.6, gracias man.
-
Me acabo de dar cuenta que en versiones anteriores a la 5.3 ya estaba presente esa libreria.... upsss :oops: :oops:
Saludos...........