暗黙的な型変換 キャスト - 萌えJava超入門
第七章 基本データ型の型変換

暗黙的な型変換

広くする基本データ型変換(widening primitive)は、
暗黙的に型変換できます。

目次

1.広いデータ型への型変換


暗黙的な型変換は、目的のデータ型の変数に値を代入することで行います。
特に型変換である旨を記述しなくても、代入するだけで型変換ができるので、
暗黙的(自動的)な型変換といいます。

広いデータ型への型変換は、暗黙的な型変換が行えます。
データ型の広さの順番
byte < short < int < long < float < double
左から右への型変換は暗黙的に行えます。

つまり、
double の変数に、intの値を代入できる
ってことっスか?
そうそう。
//Sample09_01.java
class Sample09_01 {
    public static void main(String[] args){
        int num = 12742;
        double dou;
        dou = num;//暗黙的な型変換
        System.out.println("num = " + num);
        System.out.println("dou = " + dou);
    }
}

コマンドライン
 >javac Sample09_01.java
 >java Sample09_01
 num = 12742
 dou = 12742.0
  


dou に numの値が入って
double になってる!
エラーも出ませんね。
だろ?
num が intのままである事にも
注目してくれ。


2.狭いデータ型への型変換は暗黙的には行えない

//Sample09_03.java
class Sample09_03 {
    public static void main(String[] args){

      double dou = 81.0;
      int num = dou;//狭いデータ型への代入

      System.out.println("num= " + num);
    }
}

コマンドライン
>javac Sample09_03.java
Sample09_03.java:6: エラー: 不適合な型:
    精度が失われる可能性が あるdoubleからintへの変換
      int num = dou;
                ^
エラー1個


実際の値は 81.0 ですから
int の範囲内ですけど、
それでもダメなんすね。
そうなんだ。
値は評価されていない。
あくまでもデータ型の評価なんだ。


お疲れ様でした。




© 2019 awasekagami