Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Ensamblador > Mostrar un numero float en un MessageBox
-Foros de debate

Ensamblador
Lista de foros | Lista de mensajes de este foro

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.

mi correo es: jj-adame@iespana.es

 
Re: Mostrar un numero float en un MessageBox
Enviado por evalgod el día 30 de abril de 2004

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.

 

Re: Mostrar un numero float en un MessageBox
Enviado por domgom el día 16 de febrero de 2005

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,

float fNum = 0.3;
WCHAR bDestino[10];
wsprintf(bDestino, "%f", fNum);

NO FUNCIONA!!!

En cambio, sí lo hacía perfectamente:

float fNum = 0.3;
TCHAR bDestino[10];
sprintf(bDestino, _T("%f"), fNum);

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:

float fNum = 0.3;
WCHAR bDestino[10];
CString Texto;
Texto.format(_T("%f"), fNum);
wsprintf(bDestino, "%s", Texto);

Saludos

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network