Ich habe diesen Code geschrieben:
float b = 3.6;
und ich verstehe das:
Fehler: Ungelöstes Kompilierungsproblem: Typinkongruenz: Konvertiert nicht von Double in Float
Warum? Was ist die Definition von float
?
java
floating-point
t0mkaka
quelle
quelle
f
dem Literal ein hinzufügen "), während die andere Frage fragt, warum Sie das hinzufügen müssenf
. Obwohl sie verwandt sind, handelt es sich nicht um ein Duplikat.Antworten:
Wenn Sie in Java eine Dezimalzahl als eingeben, wird diese als
3.6
interpretiertdouble
.double
ist ein IEEE 754-Gleitkomma mit 64-Bit-Genauigkeit, währendfloat
es sich um einen IEEE 754-Gleitkomma mit 32-Bit-Genauigkeit handelt. Da afloat
weniger genau als a istdouble
, kann die Konvertierung nicht implizit durchgeführt werden.Wenn Sie einen Float erstellen möchten, sollten Sie Ihre Nummer mit
f
(dh :) beenden3.6f
.Weitere Erläuterungen finden Sie in der Definition der primitiven Datentypen des Java-Lernprogramms .
quelle
Mach es
quelle
Die Sache ist, dass Dezimalzahlen standardmäßig doppelt sind. Und da double nicht in float passt, müssen Sie explizit angeben, dass Sie absichtlich einen float definieren. Also geh mit:
quelle
In JAVA sind Werte wie:
Wird als doppelt und nicht schwebend angenommen .
Sie können auch eine Besetzung durchführen, um das Problem zu lösen:
float b = (float) 3.5
;;Eine andere Lösung:
float b = 3.5f
;;quelle