• ベストアンサー

long型に値を代入したい。

long型に値を入れる時は、 long id = 100L; とすると思うのですが、例えば int old_id = 100; long new_id = old_id*100; というように、あらかじめint型に入っている値に計算結果を入れて、long型の変数に値を入れたいのですが、このとき「L」はどのようにつければいいのでしょうか? long new_id = old_id*100+L; かなと思い、やってみたのですが、エラーが出てしまいます。

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

  • ベストアンサー
  • hal_n
  • ベストアンサー率43% (7/16)
回答No.2

以下のコードで、やりたい事が実現できるかと思います。 int i = 100000000; long l = i * 100L; なお、似ているようですが、以下のコードでは結果が違ってきます。 int i = 100000000; long l = i * 100; //100L ではなく 100 理由を考えてみると面白いですよ。 int と long では、分かりにくいですが、int と double だと理解しやすいかもしれません。 int i = 10; double d = i / 3; がんばってください。

その他の回答 (3)

  • BleuLune
  • ベストアンサー率57% (15/26)
回答No.4

javaのバージョンによりますが、 1.5以降ならAutoBoxingがあるので特に処理を書くことはないです。 1.4以前ならIntegerクラスでラップしてからInteger.longValue()を使用すればいいかと思います。 このあたりは、javadocを読めば自分がやりたい処理に必要なメソッド、コンストラクタは書いてますよ。 googleで「java int ラッパークラス」で検索すれば、たくさん情報が集まるかと。。。

nabewari
質問者

お礼

皆さん、回答ありがとうございます。 解決しました。

noname#78739
noname#78739
回答No.3

long id = 100L; 右辺を100と書いた場合、整数値のデータ型は自動的にint型になります。 左辺に代入の際、long型に暗黙の型変換がされます。 右辺の計算結果で、型の範囲を超えるといった場合、Lをつけるなどして、型の範囲に収めるようにキャストする感じ。かな。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>あらかじめint型に入っている値に計算結果を入れて、long型の変数に値を入れたい 勝手にキャストされるので、そのまま代入して下さい。

関連するQ&A