【3章】Javaを学ぼう


小数について

double型

Javaでは整数を扱う際に用いられるデータ型のint型と、小数を扱う際に用いられるデータ型のdouble型があります。よく用いられるというだけで、あくまでも整数や小数を扱う上での型のひとつとして捉えてください。

数値のデータ型
  5  ・・・・ int型
(整数)

 1.28  ・・・・ double型
(小数)

double型の変数について

整数とは小数点以下を持たない数です。一方小数とは「1.28」「-3.7」のように小数点以下を持つ数になります。
例えば、1はint型ですが、1.0はdouble型になります。

Main.java
double number = 5.14;
System.out.println(number);

出力結果↓

コンソール
5.14

double型も数値ですので、計算が可能です。

Main.java
double number1 = 5.1;
double number2 = 2.9;

System.out.println(number1 + number2);
System.out.println(number1 - number2);

出力結果↓

コンソール
8.0
2.2

計算時の自動型変換について

int型とdouble型の計算では結果はdouble型になります。これは計算の過程でint型がdouble型に変換されるためです。よって「5 / 2.0」もしくは「5.0 / 2」の結果は2.5になります。5を5.0にするように、整数は必ず小数でも表せるため、Javaが自動で型変換を行ってくれます。
それでは、例えばint型の変数同士の割り算で、正確な値を出したいときはどうすればよいでしょうか。
結論から言うとint型の変数同士を割り算した際、もし割り切れない数が出た場合は正確な値までは表示されません。

Main.java
double number1 = 17;
double number2 = 3;

System.out.println(number1 / number2);

出力結果↓

コンソール
5

int型同士の割り算では、上記の出力結果のように「5」となり、「5.67」とはなりません。
このような場合には強制的に型変換を行います。

(強制型変換)キャストについて

強制的に型変換を行うことをキャストと呼び、(変換したいデータ型)値とすることで強制的にデータ型を変更できます。上記のint型同士の値から、最終的にdouble型の計算結果を得たい場合、どちらか1つをキャストしてあげれば、出力結果はdouble型になります。

Main.java
double number1 = 17;
double number2 = 3;

System.out.println((double)number1 / number2);
      //number1の値がdouble型に変換される 17.0 / number2

出力結果↓

コンソール
5.67

以上が今回の記事の内容になります。
次章に続きますので、もしよろしければ是非ご覧ください!
最後までご覧いただきまして、ありがとうございました!