この章ではデータ型について説明します。
データ型とは変数に入れるデータがどのような性質のデータなのかを分類したものです。 boolean型は論理型と呼ばれていますが、trueとfalseを使用します。
これについては「if文について知ろう1」の章で説明します。
char型は「’a’」のように1文字だけを格納するためのデータ型です。
半角アルファベットや全角文字などがchar型であり、これらをシングルクォートで囲みます。
char型は2バイトの UNICODE文字です。
UNICODEとは世界中のあらゆる国で使われている文字を1つの文字コードとしてまとめている規格です。
byte型は「-128~ +127」までの整数を入れることが出来ます。
short型は「-32768~ +32767」までの2バイトの整数を入れることが出来ますが、メモリはint型の半分になります。
int型は「-2147483648~ +2147483647」までの4バイトの整数を入れることが出来ます。
整数を入れるのにbyteやshortもありますが、intがよく使われます。 浮動小数点数型はdouble型とfloat型の2種類が有ります。
double型は8バイト=64ビットのサイズで倍精度浮動小数点数型と呼ばれています。 基本的には変数には指定したデータ型のデータしか入れてはいけません。
しかし、「ある変数」に違うデータ型の変数を入れても精度が落ちないと判断すれば違うデータ型の変数でも入れることが出来ます。
精度が落ちないとは小さいサイズのデータ型変数を大きいサイズのデータ型変数に代入する時です。
この時に型の変換が行われます。
例えばintの変数をlongの変数に代入したり、intの変数をdoubleの変数に代入することがこれに当たります。
型の大きさは以下の通りになります。 一番右のdoubleが一番大きいサイズになります。
注意点としてはchar型からbyte型やshort型には自動変換できません。
では例をみてみましょう。 例のようにint型の変数をdouble型の変数に代入するとdouble型の変数に自動変換されます(補足ですが、このように変数に変数を入れることができます)。
結果、int型の変数の値である「10」はdouble型の変数の値「10.0」に自動変換されます。
また、int型の変数の値をlong型の変数に代入すると、long型の変数に変換されます。
結果は同じ10ですが、型の変換が行われています。
次は計算での型変換です。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されてから計算されます。
例えば以下の例の場合はint型の変数kがdouble型に変換されるので「2.0」になりますので、「2.0+2.3」という計算がされます。 基本的には大きい型から小さい型への変換、例えばlong型変数をint型変数に代入するなどは禁止していますが、どうしても大きい型から小さい型への変換を行いたい場合にはキャスト演算子を使って強制的に型変換を行う方法があります。 ではキャスト演算子の例を見てみましょう。 では解説をしていきます。 =>ここでの計算はint型同士の割り算の結果をint型 w に代入しています。
int型は整数型なので、小数点以下は表示されず、結果は2になります。
次は以下の箇所の説明をします。 =>(float)iの部分はというキャスト演算子を使ってint型 iをfloat型に変換しています。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されて計算されると言うルールがあるので、変数eはfloat型に変換されてから計算が行われます。
答えはfloat型の計算では小数点以下もきちんと出力してくれますので、2.25になります。
カテゴリー