Eu escrevi este código:
float b = 3.6;
e eu entendo:
Erro: problema de compilação não resolvido: Tipo incompatível: não é possível converter de duplo para flutuante
Por quê? Qual é a definição de float
?
java
floating-point
t0mkaka
fonte
fonte
f
a ao literal'), enquanto a outra pergunta pergunta por que você deve adicionar of
. Embora estejam relacionados, não é uma duplicata.Respostas:
Em Java, quando você digita um número decimal como
3.6
, ele é interpretado como umdouble
.double
é um ponto flutuante IEEE 754 de precisão de 64 bits, enquantofloat
é um ponto flutuante IEEE 754 de precisão de 32 bits. Como afloat
é menos preciso que adouble
, a conversão não pode ser realizada implicitamente.Se quiser criar um float, você deve terminar seu número com
f
(ou seja:)3.6f
.Para obter mais explicações, consulte a definição de tipos de dados primitivos do tutorial Java .
fonte
Faça
fonte
O fato é que o padrão dos números decimais é o dobro. E uma vez que double não se encaixa no float, você tem que dizer explicitamente que você definiu intencionalmente um float. Então vá com:
fonte
Em JAVA, valores como:
É assumido como duplo e não flutuante .
Você também pode realizar um elenco para resolver o problema:
float b = (float) 3.5
;Outra solução:
float b = 3.5f
;fonte