Tipo de datos float y double en Java
Los tipos de datos flotantes y dobles se utilizan para almacenar números reales o de punto flotante en Java, pero un tipo de datos doble es más preciso que flotante. double
es el tipo de datos predeterminado para números de punto flotante.
Para almacenar números de punto flotante con precisión
Un flotante
es un punto flotante IEEE 754 de 32 bits, mientras que un doble es un punto flotante IEEE 754 de 64 bits. Float
tiene un rango más bajo en comparación con el doble.
En el ejemplo que se muestra a continuación, tenemos d
de tipo de datos double
, que se obtiene dividiendo dos variables double
d1
y d2
. Del mismo modo, tenemos f1
como resultado cuando se dividen dos variables flotantes
f1
y f2
. En el caso de double
, no es necesario utilizar el sufijo d
o D
, mientras que para los datos de tipo float
necesitamos utilizar el sufijo f
o F
como por defecto, todo real los números se consideran double
en Java.
En la salida, podemos ver que la precisión y exactitud de la variable double
d
es mayor que la variable flotante
f
. Sabemos que double
es un tipo de datos más grande que float
, por lo que debemos reducirlo. Para encasillar double
a float
necesitamos mencionar la palabra clave float
entre paréntesis antes del valor decimal.
Es visible en la salida que al convertir la variable double
a flotante
pierde datos y precisión ya que estamos almacenando un tipo de datos más grande en un tipo de datos más pequeño. Por lo tanto, double
requiere más memoria para almacenar números flotantes de doble precisión y proporciona resultados precisos.
public class Test {
public static void main(String args[]) {
double d1 = 10.0;
double d2 = 3.0;
double d = d1 / d2;
System.out.println("double d : " + d);
float f1 = 10.0f;
float f2 = 3.0f;
float f = f1 / f2;
System.out.println("float f : " + f);
float f3 = (float) d;
System.out.println("float f3 : " + f3);
double d3 = f;
System.out.println("double d3 : " + d3);
}
}
Producción :
double d : 3.3333333333333335
float f : 3.3333333
float f3 : 3.3333333
double d3 : 3.3333332538604736
La diferencia entre los dos tipos de datos se puede ilustrar con los datos tabulares dados.
Tipo de datos | Precisión | Tamaño | Default Tipo de datos | Valor por defecto | Sufijo | Clase de envoltura | Pérdida de datos | Palabra clave |
---|---|---|---|---|---|---|---|---|
Flotador | Precisión simple (6-7 dígitos decimales) | 32 bits | No | 0.0f | Use fo F.Necesitamos agregar este sufijo ya que, por defecto, los números flotantes se tratan explícitamente como dobles | java.lang.Float | Sin pérdida de datos al convertir flotante a doble | La palabra clave flotante se utiliza para el tipo flotante |
Doble | Precisión doble (15-16 dígitos decimales) | 64 bits | Sí | 0.0d | Utilice d o D. Opcional para utilizar el sufijo | java.lang.Double | Pérdida de datos al convertir doble a flotante | La palabra clave double se utiliza para definir un número de doble precisión. |
Float y double se utilizan para representar números reales. Ambos tipos de datos no son precisos; son tipos aproximados. Cuando necesitemos un resultado exacto y preciso, deberíamos apostar por el doble. Si hay alguna restricción de espacio o memoria, se debe considerar la opción flotante.
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java Double
- Convertir Int a Double en Java
- Comparar dobles en Java
- Double en Java
- Convertir lang en double en Java
- Convertir doble en cadena en Java