Escribí este código:
float b = 3.6;
y me sale esto:
Error: problema de compilación no resuelto: Falta de coincidencia de tipos: no se puede convertir de doble a flotante
¿Por qué? ¿Cuál es la definición de float
?
java
floating-point
t0mkaka
fuente
fuente
f
al literal'), mientras que la otra pregunta pregunta por qué debe agregar elf
. Aunque están relacionados, no es un duplicado.Respuestas:
En Java, cuando escribe un número decimal como
3.6
, se interpreta como undouble
.double
es un punto flotante IEEE 754 de precisión de 64 bits, mientras quefloat
es un punto flotante IEEE 754 de precisión de 32 bits. Como afloat
es menos preciso que adouble
, la conversión no se puede realizar implícitamente.Si desea crear un flotante, debe terminar su número con
f
(es decir:)3.6f
.Para obtener más explicaciones, consulte la definición de tipos de datos primitivos del tutorial de Java .
fuente
Hazlo
fuente
El caso es que los números decimales se duplican por defecto. Y dado que double no encaja en float, debe decirle explícitamente que define intencionalmente un float. Así que ve con:
fuente
En JAVA, valores como:
Se asume como doble y no flotante .
También puede realizar un yeso para solucionar el problema:
float b = (float) 3.5
;Otra solución:
float b = 3.5f
;fuente