Veo referencias conflictivas en Oracles documentation. ¿Hay alguna diferencia entre cómo se almacenan los decimales en los tipos FLOAT y NUMBER en la base de datos?Oracle Floats contra el número
Como recuerdo de C, et al, una flotación tiene limitaciones de precisión que una int no tiene. R.g., para 'float's, 0.1 (Base 10) se aproxima a 0.110011001100110011001101 (Base 2) que equivale aproximadamente a 0.100000001490116119384765625 (Base 10). Sin embargo, para 'int's, 5 (Base 10) es exactamente 101 (Base 2).
por lo que el siguiente no terminará como se esperaba en C:
float i;
i = 0;
for (i=0; i != 10;)
{
i += 0.1
}
Sin embargo veo que flotan elsewhere in Oracle's documentation se ha definido como un número. Y, como yo lo entiendo, la implementación de Oracle del tipo NUMBER no tiene el mismo problema que el float de C.
Entonces, ¿cuál es la verdadera historia aquí? ¿Se ha desviado Oracle de la norma de lo que espero que ocurra con los flotadores/FLOAT?
(estoy seguro de que es un pez-pedo-en-un-huracán de la diferencia para lo que los voy a utilizar, pero sé que voy a tener preguntas si 0.1 * 10 sale a 1.00000000000000001)