Extraño caso de División por 0

30/08/2007 - 22:48 por Emece | Informe spam
En una planilla tengo tres columnas. La primera corresponde al número 0.1 que
luego se suma con su anterior hasta llegar a tres. La segunda represente la
función [xlog(x))/(1-x)], y la tercera, simplemente la función [1/(1-x)]. En
todos los casos, el valor de x está definido por la primera columna. Pues
bien, cuando x = 1, las columnas dos y tres debieran reclamar una división
por cero, y NO LO HACE. Lo increíble es que si en la fila 16 de la primera
columna se reemplaza el proveniente de la suma de 0.1 con el saldo anterior,
por el valor 1, en este caso SI reclama una división por cero. Alguna pista?
Gracias.
 

Leer las respuestas

#1 Héctor Miguel
31/08/2007 - 03:24 | Informe spam
hola, (...) ?

... tres columnas. La primera corresponde al numero 0.1 que luego se suma con su anterior hasta llegar a tres.
La segunda represente la funcion [xlog(x))/(1-x)], y la tercera, simplemente la funcion [1/(1-x)].
En todos los casos, el valor de x està¡ definido por la primera columna.
Pues bien, cuando x = 1, las columnas dos y tres debieran reclamar una division por cero, y NO LO HACE.
Lo increible es que si en la fila 16 de la primera columna se reemplaza... la suma de 0.1 con el saldo anterior
por el valor 1, en este caso SI reclama una division por cero. Alguna pista?



me da la impresion de que te estas *enfrentando* a diferencias en decimales cuando intervienen formulas intermedias -?-

1) si suponemos que la primer columna es A y que el primer numero constante [0.1] esta en 'A1'
y que a partir de 'A2' usas una formula +/- como: ¡+0.1 -?-

2) prueba modificando dicha formula a [p.e.] =redondear(a1+0.1,1) [obviamente la copias/arrastras/continuas/... hasta 'A_n'] :))

3) para [intentar] entender la *razon* de lo anterior... habria que *remitirte* al tema relacionado con la aritmetica *de punto flotante*

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

[hasta donde se] esos 'problemas' de precision son en realidad originados por lo siguiente:
1) excel, al igual que [casi?] todos los programas de 'precision', asi como los CPU, etc., etc., etc.
utilizan el 'punto flotante de precision doble' [Double], siguiendo los estandares de la organizacion:
IEEE [Institute of Electrical and Electronic Engineers].
2) los numeros son 'guardados' de manera diferente de como 'se ven' [segun el formato en la hoja]
en variables de 8 bits, que guarda numeros con una precision aproximada de 15 posiciones decimales
3) ademas, un procesador NO 'puede' guardar numeros fraccionarios mas grandes con absoluta precision.

-> creo que te 'conviene' [primero] revisar informacion adicional en:

XL Como Corregir Errores al Redondear en Aritmetica de Punto Flotante
http://support.microsoft.com/defaul...s%3b214118
XL Aritmetica de Punto Flotante Puede Proporcionar Resultados Inexactos
http://support.microsoft.com/defaul...b;ES;78113
La pagina del IEEE (Institute of Electric and Electronic Engineers)
http://www.ieee.org/

Preguntas similares