初めに
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);