[Java基礎③]データの変換(キャストする)整数→実数 文字列→整数


初めに

Java学習3日目です。今回は、データ型の変換について学びました。

データ型の変換をデータのキャストと言うそうです。

小数点あり→整数型

double型の3.14と定義した値を3と表示します。

コード
public class Main {
    public static void main(String[] args) {
    double number1 = 3.14;
    System.out.println((int)number1);
    }
}

整数を小数点ありに変換

コード
public class Main {
    public static void main(String[] args) {
    double number1 = 3;
    System.out.println((double)number1);
    }
}

文字列を数値に変換

コード
public class Main {
    public static void main(String[] args) {
    String text = "123";
    System.out.println(text);
       #出力結果 123
    System.out.println(Integer.parseInt(text));
       #出力結果 123
    System.out.println(Double.parseDouble(text));
       #出力結果 123.0
    }
}

「parseInt」は文字列はint型に変換してくれるメソッド。
「parseDouble」は文字列をdouble型に変換してくれるメソッド。

捕捉 データ型の自動変換

割引価格を計算してみる

以下のコードはエラーになります。
int discountPrice = price * 0.5;は、
int型で定義していますが0.5という少数をかけることにより、
double型に変換されてしまっているからです。

エラーになるコード
public class Main {
    public static void main(String[] args) {
    int price = 1800;
    System.out.println("定価" + price + "円");
    int discountPrice = price * 0.5;
    System.out.println("割引価格は" + discountPrice + "円");
    }
}

一部、以下のように修正します。

intにキャストする
int discountPrice = (int)(price * 0.5);

消費税こみの価格を出す

コード
public class Main {
    public static void main(String[] args) {
    int price = 1800;
    System.out.println("定価" + price + "円");
    int discountPrice = (int)(price * 0.5);
    System.out.println("割引価格は" + discountPrice + "円");
    int taxinPrice = (int)(discountPrice*1.1);
    System.out.println("税込価格は" + taxinPrice + "円");
    }
}

まとめ

データ型の変換をキャストすると言う

#文字列整数
System.out.println(Integer.parseInt(text));

#文字列実数
System.out.println(Double.parseDouble(text));

#intで定義してても少数点のある数字をかけるとdouble型になる
int discountPrice = price * 0.5;
double型に自動変換されてしまう

以下のようにint型にキャストする
int discountPrice = (int)(price * 0.5);