- ベストアンサー
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; かなと思い、やってみたのですが、エラーが出てしまいます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下のコードで、やりたい事が実現できるかと思います。 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)
javaのバージョンによりますが、 1.5以降ならAutoBoxingがあるので特に処理を書くことはないです。 1.4以前ならIntegerクラスでラップしてからInteger.longValue()を使用すればいいかと思います。 このあたりは、javadocを読めば自分がやりたい処理に必要なメソッド、コンストラクタは書いてますよ。 googleで「java int ラッパークラス」で検索すれば、たくさん情報が集まるかと。。。
long id = 100L; 右辺を100と書いた場合、整数値のデータ型は自動的にint型になります。 左辺に代入の際、long型に暗黙の型変換がされます。 右辺の計算結果で、型の範囲を超えるといった場合、Lをつけるなどして、型の範囲に収めるようにキャストする感じ。かな。
- koko_u_
- ベストアンサー率18% (459/2509)
>あらかじめint型に入っている値に計算結果を入れて、long型の変数に値を入れたい 勝手にキャストされるので、そのまま代入して下さい。
お礼
皆さん、回答ありがとうございます。 解決しました。