Problema Con La Variable Float


Subject: 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.

Profile PM  
Subject: 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

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

Me ha quedado claro.

Un saludo.

Profile PM  
Subject: 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)

Last edited by CanihoJR on Tuesday, 24 April 2018, 21:01; edited 1 time in total
Subject: Re: Problema Con La Variable Float
CanihoJR:

Mirate la funcion format

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


Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.0923s (PHP: -29% SQL: 129%)
SQL queries: 23 - Debug Off - GZIP Enabled