とと の方程式j + f * d
がj = 4 long
あります。答えは次のとおりです。f = 5.0F float
d = 6.0 double
34.0 double
34.0 がdouble
.
式がどのように 34.0 になるのかわかりませんが、5.0F != 5
それを使用して乗算する場合はどうなりますか?
J = 4 (long)
f = 5.0F (float)
d = 6.0 (double)
とと の方程式j + f * d
がj = 4 long
あります。答えは次のとおりです。f = 5.0F float
d = 6.0 double
34.0 double
34.0 がdouble
.
式がどのように 34.0 になるのかわかりませんが、5.0F != 5
それを使用して乗算する場合はどうなりますか?
J = 4 (long)
f = 5.0F (float)
d = 6.0 (double)
操作の順序が優先されます。乗算は加算の前に発生します。
j + f * d
4 + 5.0 * 6.0
4 + 30.0
34.0
このリンクでは、Java 演算子の優先順位について詳しく説明しています。覚えておくとよい情報です: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
Kon が言及した操作の順序に加えて、double
6.0 は既にdouble
. Java は、出力タイプに含まれる値に基づいて出力タイプをダウングレードしようとしません。入力型と互換性のある最小の型を使用するだけです。すでにdouble
(「最大」のプリミティブ データ型、つまり最大の範囲の数値を持つ) があるため、Java はそれを出力します。
したがって、ある意味では、それ5.0f
は同じではありません5
(実際には、乗算だけではありません)。5
整数型です。5.0f
フロートタイプです。Java は、多くの異なる数値を保持できないデータ型に結果を自動的にダウングレードしません。
(この回答を受け入れないでください。Kon の情報の方が重要です。)