Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Error en los float

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Error en los float Responder citando

Tengo un número metido en un campo float y al pasarlo a String no muestra el número corrrecto. Alguien Sabe por que?.

float numero;
numero = 12.12;
AnsiString cadena = FloatToStr(numero);

la variable cadena contiene 12,119999...

Volver arriba
Mensaje    Asunto: Error en los float Responder citando

Esto es debido a que en la máquina los números se almacenan como potencias de 2, potencias negativas en el caso de los decimales, por tanto para obtener el valor real lo hace por aproximación sumando una serie de potencias negativas hasta que se parezca al màximo sin pasarse, teniendo en cuenta que la precisión es limitada, es muy probable que no llegue nunca al valor exacto.

No estoy seguro de que me haya explicado bien, pero puedes solucionar el problema utilizando la función FormatFloat() en lugar de FloatToStr(), ya que la primera te redondeará a la precisión que tu le digas.
Un abrazo

Bep.

Volver arriba
Mensaje    Asunto: Error en los float Responder citando

No se porqué pero tuvimos el mismo problema con una base de datos en el curro y lo solucionamos así:
en vez de poner un float pon un currency y listo.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.