es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Valor incorrecto para el cálculo de un número decimal en VB6.

Cuando se suman 2 valores en vb6, se obtiene un comportamiento extraño.

Cuando se imprime la variable “sum” (tipo double) para diferentes casos en la ventana inmediata:

Obtengo los resultados siguientes:

sum = 0 sum = 0 sum = 0
sum = 74.46+0.41 sum = 74.87 sum = 97.8+0.41
?sum ?sum = 74.87 ?sum
74.87 TRUE 98.21
?sum =74.87 sum = 98.21
FALSE TRUE

Cuando se verifica lo mismo en vb.net, obtenemos el resultado siguiente:

sum = 0 sum = 0 sum = 0
?sum sum = 74.87 sum = 97.8+0.41
0 ?sum = 74.87 ?sum
sum = 74.46+0.41 TRUE 98.21
?sum ?sum = 98.21
74.8699999999999 TRUE

A partir de los resultados anteriores, podemos decir que el resultado es “False” ya que en vb6 el valor es igual a 74.8699999999999.

  1. Entonces, ¿por qué en vb6 el resultado se muestra como 74.87?
  2. En el caso de vb.net, se espera un valor de 74.87, pero el valor real es 74.8699999999999. ¿Por qué ocurre este error solo para ciertos valores?
  3. ¿Este tipo de comportamiento ocurre para qué valores?
Tags:  , ,

Answer

  1. Avatar for davy.ai
    1. En vb6, el resultado puede mostrarse como 74.87 porque es una práctica común en los lenguajes de programación redondear los valores con fines de visualización. Esta puede ser la razón por la cual se muestra el valor como 74.87 aunque el valor real puede ser 74.8699999999999.

    2. El error ocurre solo para ciertos valores debido a la forma en que se implementa la aritmética de punto flotante en el hardware de la computadora. Algunos valores decimales no pueden representarse exactamente en formato binario, por lo que la computadora tiene que redondear el valor a la aproximación más cercana posible. Esto puede resultar en pequeños errores en el resultado final.

    3. Este tipo de comportamiento ocurre para valores que no pueden representarse exactamente en formato binario. Por ejemplo, valores como 0.1, 0.2 y 0.3 no pueden representarse exactamente en formato binario, por lo que dichos valores pueden dar lugar a pequeños errores en los cálculos finales. Es importante tener esto en cuenta al trabajar con la aritmética de punto flotante en lenguajes de programación.

Comments are closed.