Ayuda con CString::Format()

28/01/2005 - 22:25 por William GS | Informe spam
Hola a todos. Estoy usando CString::Format() para
convertir un double a texto:

CString str;
str.Format("%f", 3.14); //Resultado: "3.14000000" ==> pero
necesito "3.14"
str.Format("%f", 200.146); //Resultado: "200.14600000" ==>
pero necesito "200.146"

¿Como puedo hacer para que los ceros no significativos no
sean tomados en cuenta? ¿Existe alguna opción para Format
() para lograr esto?.

Muchas gracias,
William G.S.
 

Leer las respuestas

#1 Aquiles
29/01/2005 - 20:19 | Informe spam
Hola William
Se me ocurre que tal vez te sea de utilidad la funcion gcvt, que convierte
un float a string y no es necesario mas.
Por otro lado, si es necesario utilizar format de la clase CString, para
despreciar los ceros no significativos, tendras que colocar un modificador a
%f para indicarle la resolucion decimal que necesitas.Si esta es fija, dos
decimales o tres o los que sean, es facil.POr ejemplo 2 decimales %.2f
Si por el contrario, necesitas toda la parte decimal, tendras que calcular
cuantas cifras dipone despues del separador decimal y pasarselo como
parametro a format, mas concretamente como modificador de %f.
Sigo pensando que es mas facil gvct
char *_gcvt( double value, int digits, char *buffer );


"William GS" escribió en el mensaje
news:0cdd01c5057f$e533a640$
Hola a todos. Estoy usando CString::Format() para
convertir un double a texto:

CString str;
str.Format("%f", 3.14); //Resultado: "3.14000000" ==> pero
necesito "3.14"
str.Format("%f", 200.146); //Resultado: "200.14600000" ==>
pero necesito "200.146"

¿Como puedo hacer para que los ceros no significativos no
sean tomados en cuenta? ¿Existe alguna opción para Format
() para lograr esto?.

Muchas gracias,
William G.S.

Preguntas similares