私は、Javaの演算子と異なるデータ型との関係がある場合、より大きなデータ型に昇格していることを知っています したがってdoubleはfloatよりも大きいので、たとえば異なるデータ型操作double float
double z=39.21;
float w=2.1F;
System.out.println(z+w);
結果z + wはダブルタイプになります。 Fをfloatデータ型に置かないと、floatはdoubleとみなされます。
なぜ、以下のコードがコンパイルされないのですか?
double z=39.21;
float w=2.1;
System.out.println(z+w);
zとwの両方がdoubleと見なされた場合、結果は2倍にならないはずですか? は、その代わりに、スロー:
Arithmetic.java:26: error: incompatible types: possible lossy conversion from double to float
float w=2.1;
^
1 error
また、とき
short x = 14;
float y = 13;
double z = 30;
System.out.println(x * y/z);
まず、ショートはintに変換されます。その後、intはFloatに変換されます。その後、乗算が行われます。
なぜこの場合はコンパイルされますか?FとDの間にはF?
あなたは私を助けることができることを理解できないようですか?