Visual Basic para Aplicaciones - Grave Error en Excel en Operaciones

Life is soft - evento anual de software empresarial
 
Vista:

Grave Error en Excel en Operaciones

Publicado por Zeus Alberto Páez Rentería (26 intervenciones) el 26/06/2010 02:07:13
Buenas Señores

Resulta que realizando un programa en VBA mi programa se quedaba ciclado buscando una solucion. Revise muchas veces el codigo y no encontre errores hasta que dude del Excel.

He aqui el codigo ciclado en un Do Loop en resumen
If Dif>0.01 then
'operaciones
Elseif Dif<0 then
'operaciones
Elseif Dif>0 AND Dif<0.01 then
Exit Do
End if

Estamos hablando de que el valor de Dif quiero que caiga entre 0 y 0.01 nunca cayo
Bien pues he aqui el detalle. Pues excel no calcula bien esta operacion:
=100-99.99999
La solucion sencilla 1x10^-5 o 0.00001
Si la ejecutas todo se ve perfecto porque excel te pone 1E-05
Pero nos vamos a Format>>Cells>>Numer>>Category(Number)>>Decimal places: 30
Y veamos que no es 0.00001 sino 0.0000100000000031741...

La pregunta es que ????? Que diablos hacen esos numeros ahi. ...31741...

Peor aun si agregas mas nueves el error incrementa.
100-99.999999
Excel Arroja 0.000000999999997475243000000000
Lo correcto seria 0.000001 o 1x10^6

Alguien sabe porque sucede, muchas gracias

Ing. Zeus Alberto Paez Renteria
Departamento de Ingenieria
Triumph Aerospace Group
[email protected]
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
Imágen de perfil de JuanC

RE:Grave Error en Excel en Operaciones

Publicado por JuanC (565 intervenciones) el 26/06/2010 14:35:41
el por qué pasa no sé si podremos averiguarlo...
la solución (creo), usar el tipo Single en lugar de Double

Dim a!
a = 100 - 99.999999

Saludos, desde Baires, JuanC
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
Imágen de perfil de JuanC

RE:Grave Error en Excel en Operaciones

Publicado por JuanC (565 intervenciones) el 26/06/2010 18:34:02
encontré algo que quizá responda tu inquietud...

http://msdn.microsoft.com/es-es/library/xay7978z(VS.80).aspx
http://msdn.microsoft.com/es-es/library/ae382yt8(v=VS.80).aspx

Saludos, desde Baires, JuanC
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:Grave Error en Excel en Operaciones

Publicado por José H Ramírez Oseguera (6 intervenciones) el 04/07/2010 21:27:35
Tienes que ajustar el grado de precisión para el cálculo de las fórmulas, en herramientas + opciones + calcular y activar Precisión en pantalla hablando de la versión 2003 de Excel y hablando de la versión 2007 presiona Alt + A + X en la opción de las fórmulas hacer lo equivalente.

verifica si es esto lo que necesitas
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:Grave Error en Excel en Operaciones

Publicado por José H Ramírez Oseguera (6 intervenciones) el 04/07/2010 21:36:25
Tienes que ajustar el grado de precisión para el cálculo de las fórmulas, en herramientas + opciones + calcular y activar Precisión en pantalla hablando de la versión 2003 de Excel y hablando de la versión 2007 presiona Alt + A + X en la opción de las fórmulas hacer lo equivalente.

verifica si es esto lo que necesitas
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