私はこのコードを書きました:
float b = 3.6;
私はこれを取得します:
エラー:未解決のコンパイルの問題: 型の不一致:doubleからfloatに変換できません
どうして? float
の定義は何ですか?
Javaでは、3.6
として10進数を入力すると、double
として解釈されます。 double
は64ビット精度のIEEE 754浮動小数点であり、float
は32ビット精度のIEEE 754浮動小数点です。 float
はdouble
よりも精度が低いため、変換を暗黙的に実行することはできません。
フロートを作成する場合は、f
(つまり、3.6f
)で数字を終了する必要があります。
詳細については、 Javaチュートリアルのプリミティブデータ型の定義 を参照してください。
作って
float b= 3.6f;
浮動小数点リテラルは、ASCII文字Fまたはfが末尾に付いている場合、float型です。それ以外の場合、そのタイプはdoubleであり、オプションでASCII文字Dまたはdで接尾辞を付けることができます
問題は、10進数がデフォルトで2倍になることです。また、doubleはfloatに適合しないため、意図的にfloatを定義することを明示的に指定する必要があります。だから行く:
float b = 3.6f;
Javaでは、次のような値:
floatではなくdoubleと見なされます。
問題を解決するためにキャストを実行することもできます。
float b = (float) 3.5
;
別の解決策:
float b = 3.5f
;