Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Mostrar un numero float en un MessageBox
Enviado por Jesús el día 23 de abril de 2004
Hola amigos, tengo un problema, quiero mostrar en un MessageBox un número en coma flotante, pero no se como hacerlo, e intentado transformarlo a string con el API wsprintf, pero no convierte numeros en coma flotante, y lo toma como si fuera un número entero, la pregunta es:
¿cómo convertir un float a string?
PD: Doy las gracias por adelantando a quien se tome la molestia de contestarme.
Has de emplear la instruccion de punto flotante FBSTP, que convierte a un numero BCD de 18 digitos y lo almacena en la direccion de memoria que figura en el operando; (solo tiene uno).
Una vez que lo tengas en ese campo lo conviertes a cadena ASCI y lo pasas a la funcion MessageBox.
Por si no lo sabes BCD, que significa Decimal Codificado en Binario es un formato de 2 digitos por byte, lo que se conoce como "campo empaquetado", terminologia IBM y del lenguage COBOL; de ahi que la maxima capacidad sean los 18 digitos, mas el bit de signo y se pierden 7 bits.
Espero que te ayude, un saludo, Emilio.
En efecto, ignoro la razón por la que en el repertorio de formatos de wsprintf (la versión UNICODE de sprintf) se ha "eliminado" la posibilidad de trabajar con números en coma flotante. En otras palabras,
Para aquellos que usen MFC, queda una única solución posible, a través de la clase CString y su mé todo "format". El siguiente códico funciona perfectamente incluso en la vaersión UNICODE: