En Java, Java.
Hay dos tipos de datos de punto flotante:
edad de pete davidson
- Tipo de datos flotante
- doble tipo de datos
Tanto float como double representan los números de punto flotante que almacenan los valores decimales.
Tipo de datos de punto flotante | Valores | Tamaño (bits)* | Requisito de almacenamiento (bytes) | Valor por defecto | Precisión | Dígitos decimales | Rango | Exactitud |
---|---|---|---|---|---|---|---|---|
flotar | IEEE 754 de punto flotante | 32 | 4 | 0.0f | Soltero | 6 dígitos decimales | 3.4e-038 a 3.4e+038 | Bajo |
doble | IEEE 754 de punto flotante | 64 | 8 | 0.0d | Doble | 15 dígitos decimales | 1.7e-308 a 1.7e+308 | Alto |
*Los bits de tamaño incluyen lo siguiente:
bits | flotar | doble |
---|---|---|
Firmar | 1 | 1 |
Exponente | 8 | 11 |
mantisa | 23 | 52 |
Precisión simple: Consiste en uno bit de signo (S), ocho bits de exponente (E), y veintitrés bits de mantisa (M).
Precisión doble: Consiste en uno bit de signo (S), once bits de exponente (E), y cincuenta y dos bits de mantisa (M).
Tipo de datos flotante
Es un número de punto flotante IEEE 754 (estándar para aritmética de punto flotante) de precisión simple de 32 bits. Significa que proporciona una precisión de 6 a 7 dígitos decimales. Se utiliza si queremos utilizar la memoria de forma eficaz porque requiere menos memoria en comparación con el tipo de datos doble. Para definir un valor flotante, debemos usar un sufijo f o F. Su valor predeterminado es 0.0f. De forma predeterminada, los números flotantes se tratan como dobles en Java.
Por ejemplo, si definimos un número flotante como:
float height = 167.7
La declaración anterior de variable flotante da el error de compilación. Podemos corregir el error agregando un sufijo f o F.
float height = 167.7f or float height = 167.7F
doble tipo de datos
El tipo de datos doble es un número de punto flotante IEEE 754 de doble precisión de 64 bits. Significa que proporciona una precisión de 15 a 16 dígitos decimales. Consume más memoria en comparación con el tipo de datos flotante. Se utiliza para almacenar valores decimales. Su valor predeterminado es 0.0d. Es opcional agregar el sufijo d o D. Por ejemplo:
double price = 987.90D or double price = 987.90d or double price = 987.90
tipo de datos flotante vs doble
El tipo de datos doble es más preciso que el tipo de datos flotante. La siguiente tabla resume las diferencias entre los tipos de datos flotantes y dobles.
Base | Tipo de datos flotante | doble tipo de datos |
---|---|---|
Memoria | Ocupa 4 bytes. | Ocupa 8 bytes. |
Exactitud | Su precisión es bajo . | Su precisión es alto . |
Precisión | Sigue precisión simple (6-7 dígitos decimales). | Sigue Precisión doble (15-16 dígitos decimales). |
Palabra clave utilizada | El flotar La palabra clave se utiliza para definir un número flotante. | El doble La palabra clave se utiliza para definir un número de doble precisión. |
Clase contenedora | Su clase contenedora es java.lang.Float. | Su clase contenedora es java.lang.Double. |
Tipo de datos predeterminado | Java no lo utiliza como número de punto flotante predeterminado. | Es el por defecto tipo de datos para números de punto flotante. |
Pérdida de datos | Habrá sin pérdida de datos si convertimos float a double. | Habrá pérdida de datos si convertimos double a float. |
Usos | Se debe utilizar donde menos precisión es necesario y el almacenamiento es una limitación. | Se utiliza donde más precisión es necesario y también requiere más precisión. |
Sufijo | Usa F o F como sufijo. Es obligatorio agregar un sufijo si declara una variable flotante. | Usa d o D como sufijo. Es opcional agregar un sufijo si declara una variable doble. |
Representación | 28.96f o 28.96F | 12.5 o 12.5D o 12,5d |
Similitudes entre el tipo de datos flotante y doble
- Los números reales se pueden representar mediante ambos tipos de datos.
- Tanto el tipo de datos flotante como el doble no son precisos, por lo tanto, son valores aproximados.
¿Qué tipo de datos de punto flotante en Java deberíamos utilizar?
double es más preciso que float. Entonces, si se requiere un resultado más preciso y exacto utilice el doble. Otra razón para usar el doble es que si el número no se ajusta al rango ofrecido por el flotador, entonces use el doble. Deberíamos usar float si tenemos restricciones de memoria porque ocupa la mitad del espacio que el doble.
Le recomendamos utilizar double over float si no hay restricciones de memoria ni de espacio y cuando se necesita más precisión. Es recomendable utilizar el flotador, si la memoria es un problema y no se requiere el resultado en 16 dígitos decimales de precisión.
Los dos siguientes programas java muestra claramente las diferencias entre el tipo de datos flotante y doble.
FloatDataTypeExample.java
public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } }
Producción:
x/y = 0.33333334
DoubleDataTypeExample.java
public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } }
Producción:
x/y = 0.3333333333333333
A través de los dos ejemplos anteriores, queda claro que el tipo de datos doble requiere más memoria para almacenar un número de doble precisión y también proporciona un resultado más preciso de hasta 16 dígitos decimales. Mientras que el tipo de datos flotante ocupa menos espacio para almacenar números de precisión simple y proporciona resultados con hasta 6 decimales.