Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/02/2006, 01:57
Avatar de uamistad
uamistad
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
No son tantos, es sorprendente, pero si divides 1 entre 2 y otra vez y otra vez, etc, etc. no son miles de veces posibles, son muy poquitas.

La web de mysql http://dev.mysql.com/doc/refman/5.1/...-overview.html indica que el tipo de dato FLOAT tiene 7 posiciones decimales, mientras que DOBLE tiene 15 posiciones.

Haciendo el cálculo con FLOAT:

1E-7 * 2EXP(X) = 1

X=[1 - LOG(1E-7)]/LOG(2)

nos lleva a que X = 26, así que sólo puedes insertar entre dos números enteros, 26 registros utilizando el método de promediar (muy malo).

Para un DOBLE puedes utilizar el doble (unos 52 registros), que siguen siendo pocos y tiene sentido, pues estamos desperdiciando muchos números en el camino.

Bueno, como ni lo creía, lo chequé con mi calcu y sí, al dividir uno entre 2, entre 2, entre 2 no te tardas más de 26 iteraciones en llegar a las siete posiciones decimales que te permiten los float.

Debe haber otro proceso que permita explotar mejor a los FLOAT, se me anda ocurriendo cómo pero igual y ya es demasiado. Pero permitiría explotar a los FLOAT y poder insertar al menos 5 millones de registros y para los DOBLE, 500 billones.

Ahora sí que me quedé sorprendido.
__________________
"Di no al Internet Explorer" -Proverbio Chino-