0
0

More than 1 year has passed since last update.

自動型変換 キャスト

Last updated at Posted at 2023-01-06

型変換
「+」などの操作は同じデータ型同士じゃないとできません。
型の違うものを演算するときは、型を変換し同じ型にする必要があります。
javaでは自動変換あります。

Main.java
System.out.println("佐藤さんは"+20+"歳です");

String型int型を足すと、int型が自動でString型に変換されて、文字列として結合されます。

"佐藤さん" + "20" + "歳です"

こんな感じです。
なので、出力は

java.コンソール
佐藤さんは20歳です

計算時の自動変換

int型double型の計算結果はdouble型になります。
計算の過程でint型がdouble型に変換されます。

ここで、今まで触れてなかったので補足です。
double型とは、小数を表すデータ型です。

5     int型
3.14    double型

他にも多くのデータ型があります。それを全て説明するのは、今の私にはまだ無理なので、
リンク貼っておきます。
基本のデータ型

では、話は戻ります。
5 / 2.0もしくは5.0 / 2の結果は2.5になります。55.0にするように、Javaが自動で型変換を行ってくれます。

Main.java
System.out.println(5.0 / 2);

上記が下記のようにdouble型に変換される。

Main.java
System.out.println(5.0 / 2.0);
java.コンソール
2.5

ここで注意点です。
int型同士の計算は結果もint型になり、double型同士の計算は、結果もdouble型になります。特に、int型の5をint型の2で割ると、結果は「2.5」ではなく「2」となり出力結果が変わるので注意しましょう。

Main.java(int型)
System.out.println(5 / 2);
java.コンソール
2
Main.java(double型)
System.out.println(5.0 / 2.0);
java.コンソール
2.5

となります。

さっき見た通りint型同士は正確な値を割り出せません。

Main.java
int number1 = 13;
int number2 = 4;
System.out.println(number1 / number2);
java.コンソール
3   //正しい値は3.25

これを強制的に変換し、正しい値を出力することができます。
この方法を,キャストと言います。
int型同士の値から、最終的にdouble型の計算結果を得たい場合、どちらか1つをキャストします。

Main.java
int number1 = 13;
int number2 = 4;
System.out.println((double)number1 / number2);

この様に、どちらか一つをdouble型にキャストすれば結果は、double型になります。

java.コンソール
3.25
0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0