Javaのプログラムでは、整数と小数点を一緒に計算する際、小数点以下を切り捨て、整数として答えを算出できる方法があります。
キャストと呼ばれる型変換の機能を利用することで、いとも簡単にdouble型(少数点)の数値をint型(整数)の数値に変えながら計算してしまえるのです。
(int)(整数 任意の演算子 小数点) //整数・少数点の位置は逆でもOK
はい。このように最初に(int)と付けるだけで、小数点を交えた計算式でも整数にして答えを導き出すことができます。
以下、更にわかりやすく理解するため、商品の金額と消費税の関係を例に取りながら解説しますね^^
(int)のキャストでdouble型の小数点を型変換する
1本100円するコーラを購入したときの消費税を求めるケースを例に取り整数値を算出してみます。
※右スクロールできます
//intは整数を扱う型
//doubleは小数点を扱う型
int cola = 100; //コーラの価格100円をint型のcola変数に代入
double ritsu = 0.10; //消費税10%をdouble型のritsu変数に代入
//↓これが今回の本質となる部分↓
int tax = (int)(cola * ritsu); // intのキャスト(型変換)で計算した結果をtaxに代入
System.out.println("税金 = " + tax + "円"); //taxの中身を出力してコーラにかかる税金を表示
int total = cola + tax; //コーラの値段と消費税を足した結果をtotalに代入
System.out.println("合計金額 = " + total + "円"); //totalの中身を出力して合計金額を表示
最初に、コーラ100円と消費税の10%を宣言していますが、ご覧のとおり、それぞれint型とdouble型で定義しています。
これらを一緒に計算する場合、仮に
※右スクロールできます。
int tax = kingaku * ritsu; // int型での計算だとエラーが発生してしまう。。
double tax = kingaku * ritsu; //double型だと計算はできるが小数点の答えになる。。
という問題が発生します。
「コーラの消費税を整数で算出して、きっちりとした合計金額を出したい!」という場合、これでは困る、、、というわけです。
そこで、すでにお伝えした通りのキャストによる型変換の登場です!↓
//↓これが今回の本質となる部分↓
int tax = (int)(cola * ritsu); // intのキャスト(型変換)で計算すると、整数で答えが出せるようになる!
はい。以上のように、計算式の手前に(int)と書き、このキャストを付けるだけで自動的に型変換が行われ、整数に直したものを左辺のtax変数に代入可能です。
では実際にtax変数に収められている数が小数点ではないことを確かめるため、実行結果を見てみますと…
はい。13行目のプログラムを通して、しっかり税金が整数で表示されているのがわかりますよね◎
まとめ
いかがだったでしょうか?
キャストと呼ばれる機能を使うと、小数点を混ぜた計算でもたった1行の式で整数に変換しつつ答えを導き出せることが理解できたと思います。
心優しいあなたなら、「コーラの消費税と合計費用くらいプログラムにしなくたっていいんじゃないの?」と本質からズレた突っ込みはしておられないはずですw
本質をちゃんとマスターできているなら、「整数と小数点を一緒に処理して整数を求めたい時は、最初に(int)と書き、それから計算式を書けば良いんだな^^」と落とし込めたはずです。
最後に別の計算例をもう一つご紹介しておきますので、この意味がわかれば100%完璧かと思います!
int keisan = (int) (2 * 4.3); //小数点を切り捨てint型に変換した結果である「8」がkeisan変数に代入される
はい。今回は直接数字の計算を書きましたが、非常にシンプルでわかりやすいですよね◎
キャストをいろいろ使い倒して、ますますデキるエンジニアを目指していきましょう^^