SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Devilcpc en Miércoles 5 de Enero de 2005, 22:47
-
buenas
el tema es sencillo, tengo una variable tipo float q despues la imprimo utilizando un label, pero este me lo imprime como con 15 decimales, pero quiero fijarle una precisionde un solo decimal...
supongo q no es muy complicado, pero yo estoy acostumbrado al C q utilizaba el %.2f
-
Mira la función FormatFloat
-
DevilPc, si estas acostumbrado al formato antiguo... sigue utilizandolo:
Por ejemplo, puedes hacer:
char str[30] ;
float ff=123.45 ;
sprintf(str,"CON 2 ENTEROS y 3 DECIMALES %6.3f",ff) ;
Label1->Caption=str ;
-
gracias por las respuestas
pero estaba buscando a ver si hay alguna forma q el float se guarde directamente con 2 decimales, ya q no le pongo yo el valor sino q lo toma el programa por su cuenta...
-
DEvilpc, no acabo de entender lo que quieres.
Guardar un dato en formato float significa eso mismo, una codificacion. Otra cosa es como representarlo.
En alguna ocasion, me ha ocurrido que si pones un valor, al printarlo sale otro.
Ejemplo:
float f ;
f=12345678.456789
printf("%f",f) ;
resultado 12345678.4588
Es decir, la "precision" es variable.
Si pretendes cojer la parte "real" y "decimal" del float, existen funciones de C que lo hacen, guardando esos valores en variables enteras.
-
justamente ese es el problema, yo manejo un campo de una tabla con formato float, y el valor de la tabla es diferente al valor q tiene una variable tipo float cuando le guardo el valor de la tabla, me da una diferencia en el 4 decimal mas o menos, y pense q lo podia corregir poniendole una presicion al float de 2 decimales, igual ya lo solucione de otra forma, peroi no queda muy prolijo...
-
Puedes utilizar variables tipo double, con mayor precision que las float (y tambien, mayor tamaño de memoria)
Salute
-
TuLabel->Caption=FloatToStrF(fNumero,ffFixed,5,1);