Visual Basic - Simple RESTA

Life is soft - evento anual de software empresarial
 
Vista:

Simple RESTA

Publicado por Miguel Angel Quinteiro (1 intervención) el 08/11/2002 00:21:49
Saludos para todos,

Intenté realizar esta simple línea en Visual Basic 6.0
PRINT 12345.6789 - 12345
Y me dió como resultado 0.678900000000795
Alguien sabe Por Qué? debería dar 0.6789

De antemano, muchas gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Simple RESTA

Publicado por fernando.gomez (143 intervenciones) el 08/11/2002 01:45:19
Se me ocurren dos razones. La primera es el tipo de variable. Tienes que utilizar ambas variables como Double.

Por otro lado, todos sabemos que vb no maneja muy bién las variables, y la precisión de éstas dependen del sistema operativo.

Así las cosas, ese pequeño error que te marca se debe a que vb dimensiona tu variable (o en este caso, la variable virtual que almacena en memoria, lenguaje máquina) como de coma flotante. Esa es la razón. Puedes evitar, por ejemplo en el caso de un Byte que los 256 números enteros posibles te marquen error, porque es entero. Pero al meterte con coma flotante, esto DEBE suceder (debido a que los bites son múltiplos de ocho, y no de diez).

En fin, para contrarrestar esto, utiliza alguna función que redondeé o trunque la cantidad, por ejemplo, Round(dVar, 5).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Simple RESTA

Publicado por Josetxu (75 intervenciones) el 08/11/2002 01:49:50
¡¡Tienes razón!! a mí tambien me pasa :-)
Supongo que será por el modo en que la memoria guarda los números reales, o sea, los que no son enteros. Utiliza la notación IEEE (ie cubo le llaman) y, si te digo la verdad, lo estudié, pero ya no me acuerdo de cómo va el tema... pero sí que es curioso

Saludos
Josetxu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar