Java flotante y doble comparación
El flotador y los tipos dobles son dos formatos diferentes para representar números reales en Java. Ambos se les conoce como los tipos de puntos flotantes. Un número real en matemáticas es un número entero y una parte decimal. Por ejemplo, 23.75 es un número real. La parte del número entero es 23 y la parte decimal es 75. Si la parte decimal es ".0 ”, el número real es 23.0, entonces el número real es un entero. Los enteros son un subconjunto de números reales. Una gama de números reales del valor más pequeño a mayor tendría enteros dentro de. Por ejemplo, el rango de números reales de -3.5 a +3.5 tiene los enteros, -3, -2, -1, 0, +1, +2 y +3, dentro. No olvide que la parte decimal de un número real es una fracción adecuada. Por ejemplo .75 es 3/4.
Como se ve en el rango anterior, que es de -3.5 a +3.5, un número puede ser positivo o negativo. Un número sin el signo se llama número absoluto. El número absoluto de -2.5 es 2.5. El número absoluto de +2.5 es 2.5. El número absoluto es el número positivo.
El número, 23.75 puede ser representado por un flotador o un doble. Entonces, ¿cómo se produce la diferencia?? La respuesta a esto puede apreciarse tratando de responder la pregunta: cuántos números hay entre 2 y 3, inclusive (incluidas 2 y 3)? De hecho, el número de números entre 2 y 3 son infinitos. Entonces, los números flotantes o dobles son un conjunto de números en un rango, ya que no se pueden determinar los números infinitos. Para el mismo rango, hay más números dobles, con intervalos más cortos entre cada par de números consecutivos.
Este artículo compara flotadores y dobles en Java, comenzando con los tipos imaginarios correspondientes llamados Flot y DouB.
Tipos imaginarios correspondientes
Desarrolle nuestros propios tipos imaginarios correspondientes llamados Flot y Doub, correspondiente a Float y Double.
Flotar
Con el tipo de flot, tengamos tres números entre 2 y 3. Tengamos los números, 2.25, 2.5 y 2.75. Entonces, los únicos números de flot entre 2 y 3 inclusive, son 2, 2.25, 2.5, 2.75 y 3. Como se puede ver desde este rango, el número absoluto más pequeño en todo el conjunto de flotos es 0.25, que también es la diferencia entre dos números consecutivos. (Para tener los números de 3 a 4, solo continúe agregando 0.25).
Duda
Con el tipo DUB, tengamos siete números entre 2 y 3. Tengamos los números, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875. Entonces, los únicos números DoB entre 2 y 3 inclusive son 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875 y 3. Como se puede ver en este rango, el número absoluto más pequeño en todo el conjunto de duendos es 0.125, que también es la diferencia entre dos números consecutivos. (Para tener los números de 3 a 4, solo continúe agregando 0.125). Este número es menor que 0.25 para Flot.
Margen de error
Tenga en cuenta que los números consecutivos para DUB son más pequeños en intervalo que los números consecutivos para Flot.
No se puede determinar el número exacto de números dentro de un rango de flotos o doubs, ya que todos los números en el rango son infinitos. Entonces, hay un margen de error para cualquier número dado, incluidos enteros, como 2 o 3, para cualquiera de estos tipos.
Para los ajustes, para cualquier número dado, el número es preciso para dentro, + o - 1/4 (i.mi. 0.25). Entonces, un número de flot de 2.5, en realidad se encuentra en algún lugar entre las 2.375 y 2.675. Un número de flot de 3, en realidad se encuentra en algún lugar entre 2.875 y 3.125. El número real (precisión) nunca se puede determinar. Incluso un entero de un tipo de flot es un número que no es muy cierto.
Para DoUBS, para cualquier número dado, el número es preciso dentro de + o -1/8 (0.125). Entonces, un número DoB de 2.5, en realidad se encuentra en algún lugar entre las 2.4375 y 2.5625. Un número dueces de 3, en realidad se encuentra en algún lugar entre 2.9375 y 3.0625. El número real (precisión) nunca se puede determinar. Incluso un entero de un tipo de duda es un número que no es muy cierto. Observe que un número DoB tiene más precisión que un número de flot.
El flotador y los tipos dobles en Java son correspondientemente similares a estos tipos de flot y dudas imaginarios. Sus intervalos son correspondientemente más pequeños.
Comparación de Float y Double Proper en Java
Float se conoce como un tipo de precisión único. El doble se conoce como un tipo de doble precisión. Un número flotante ocupa 32 bits (cuatro bytes). Un número doble ocupa 64 bits (ocho bytes). Ambos números representan números reales en Java, con el tipo doble que tiene menos intervalos entre números consecutivos. Ambos tipos nunca pueden dar un número exacto. Sin embargo, el doble tiene menos tolerancia que el flotador. Ambos tipos se basan en formatos de IEEE 754.
El rango del tipo doble desde su extremo negativo hasta su extremo positivo, es más amplio que el rango del tipo flotante, desde su extremo negativo hasta su extremo positivo.
Flotar
El número positivo normalizado más pequeño del tipo flotante es 2-126. El número positivo más grande para el flotador es (2 - 2-23) × 2127. El conjunto de números de flotación puede ser imaginado como agregar 2-126 repetidamente desde el extremo negativo hasta su extremo positivo.
Un valor de número de flotación debe terminar con 'F', como muestra el siguiente programa:
clase pública THECLASSLa salida es:
23.75
Doble
El número positivo normalizado más pequeño del tipo doble es 2-1022, más pequeño que el del flotador. El número positivo más grande para el doble es (2 - 2-52) × 21023. El conjunto de números dobles puede ser imaginado como agregar 2-1022 repetidamente desde el extremo negativo, hasta su fin positivo.
Un valor de doble número no termina con 'f' o 'd' o 'r', como muestra el siguiente programa:
clase pública THECLASSLa salida es:
23.75
pero con menos margen de tolerancia, que con el flotador arriba.
Flotante y doble son tipos primitivos. Y así, el programador no debe importar la clase al programa para que se usen.
Yaya
Nan significa no un número. Considere el siguiente programa:
clase pública THECLASSEl programa se compila sin ningún problema, pero emite el siguiente mensaje de error, cuando se ejecuta:
Excepción en el hilo "principal" Java.lang.Arithmeticexception: / por cero
en el theclass.principal (.Java: 3)
La operación no válida aquí es, cero-dividido por cero. El resultado es NAN, aunque se emitió un mensaje de error. Esto es aplicable tanto a la flotación como al doble. Otras operaciones inválidas, dan como resultado NAN.
Conclusión
Float se conoce como un tipo de precisión único. El doble se conoce como un tipo de doble precisión. Un número flotante ocupa 32 bits (cuatro bytes). Un número doble ocupa 64 bits (ocho bytes). Ambos tipos representan números reales en Java, con el tipo doble que tiene menos intervalos entre números consecutivos, y es más preciso.
Chrys