• ベストアンサー

変数の型変換

追加質問ですみません。 double型をint型に変換したいんですが Integer.parseInt使っても、intValue使ってもできません。 っていうか、手元の本には、「Java言語では、自動的に型変換が行われて計算される」って書いてあるのに どうして変換されないんですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Dennyboy
  • ベストアンサー率60% (3/5)
回答No.1

こんばんは。 下記のようにすれば確かに変換できますが、一回試してください。 double d = 1.023; int i = (int)d; ちなみに、自動的に型変換というのは、拡張変換のことだと思います。 拡張変換規則: 1、一方のオペランドがdouble型であれば、もう一方がdouble型に変換される。 2、上記1でない場合、一方のオペランドがfloat型であれば、もう一方がfloat型に変換される。 3、上記1でも2でもない場合、一方のオペランドがlong型であれば、もう一方がlong型に変換される。 4、上記1、2、3いずれでもない場合、両方のオペランドがint型に変換される。 例: double d = 1.023; int i = 2; double d1 = d + i; //拡張変換:iは自動的にdouble型に変換される int i1 = (int)d1; //拡張変換じゃない:ここはキャストしないとコンパイルエラーになります

Azure3225
質問者

お礼

レスありがとうございます。 int→doubleは自動でやってくれるけど 逆はやってくれないということですね。

関連するQ&A