Problema Con La Variable Float


Objetivo: Problema Con La Variable Float
Hola comunidad.

Si escribo el siguiente código y lo ejecuto me salen unos valores que no entiendo aunque pueda parecer simple a primera vista.

Dim a as Float
Dim b as Float

a=96.02
b=Frac(a)

Print b
Print b-0.02


El resultado que me muestra es -3,9794556538908E-15 cuando en realidad lo lógico parece que sería 0. Si cambio el tipo de datos a Single, b pasa a tener un valor de 0,0199966 y b-0.02 es de -3,3569335937504E-6. ¿Por qué salen estos resultados? Estoy usando gambas 3.2.1.

Muchas gracias.

Perfil MP  
Objetivo: Re: Problema Con La Variable Float
Guizans:

Se debe a las conversiones internas que hace el ordenador, los humanos trabajamos con sistema decimal, pero el ordenador trabaja con sistema binario. Al convertir los números algunos no quedan exactos (se producen infinitos decimales) en las conversiones...Por eso da esos números.

De todos modos, piensa que -3,9794556538908E-15 es prácticamente 0, ya que es realmente -0.0000000000000003979

Cuando utilices float, también añadile Round() que es una función que redondea al numero de decimales que le indiques:
Citar:

PRINT Round(b - 0.02, -10) 'redondea hasta el décimo decimal


Fíjate que ahora el resultado es el esperado

Saludos

Nota:
Enlace a la documentacion gambas.doc sobre Round Enlace
wiki sistema binario Enlace

Objetivo: Re: Problema Con La Variable Float
Muchas gracias por responder.

Me ha quedado claro.

Un saludo.

Perfil MP  
Objetivo: Re: Problema Con La Variable Float
Estuve probando, pero sin suerte..... intento hacer cuentas con un float para bitcoins, con lo cual tendrán 8 decimales.... el caso es que a partir del 6º decimal, tambien me lo muestra en esa notacion, que si bien sirven para hacer las cuentas, no para mostrar los resultados...... alguna forma de formatearlo?

probé:
Print Round(CFloat(txtPrecio.Text), -8)

última edición por CanihoJR el Martes, 24 Abril 2018, 21:01; editado 1 vez
Objetivo: Re: Problema Con La Variable Float
CanihoJR:

Mirate la funcion format

http://gambaswiki.org/wiki/cat/userformat


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.125s (PHP: -39% SQL: 139%)
Consultas SQL: 23 - Debug off - GZIP Activado