p.56 組み込み型とは
・doubleは実数を、stringは文字列を扱うためのデータ型で、C#があらかじめ提供しているので、組み込み型ともいう ・参考:4章以降で学習するクラスを用いると、プログラマが型を定義できる。これをユーザ定義型という ・実数型:正式には浮動小数点数型といい、doubleとfloatがある ① double:倍精度浮動小数点数型・1個64ビット。実数値のデフォルト型 ② float :単精度浮動小数点数型・1個32ビット。メモリを節約できるのでUnity向き ・整数型ー符号有:負の数も扱える ① int:汎用整数型・1個32ビット。整数値のデフォルト型。約-21億から21億まで。 ② long:長整数型・1個64ビット。intの範囲を超える整数値用 ③ short:短整数型・1個16ビット。メモリを節約できる。-32768~32767 ④ sbyte:符号付きバイト型・1個8ビット。メモリをさらに節約できる。-128~127 ・整数型ー符号無:0と整数のみなので、正の数の範囲が上記①~④の倍になる ① uint:符号無汎用整数型・1個32ビット。0から約42億まで。 ② ulong:符号無長整数型・1個64ビット。uintの範囲を超える整数値用 ③ ushort:符号無短整数型・1個16ビット。メモリを節約できる。0~65535 ④ byte:バイト型・1個8ビット。メモリをさらに節約できる。0~255 ・各型の範囲はC#が提供する定数で得られる。最大値は「型.MaxValue」最小値は「型.MinValue」
ミニ演習:mini056
・各型の最大値「型.MaxValue」最小値「型.MinValue」を確認しよう
作成例
using UnityEngine;
public class mini056 : MonoBehaviour {
void Start(){
Debug.Log("double Max:" + double.MaxValue + " Min:" + double.MinValue);
Debug.Log("float Max:" + float.MaxValue + " Min:" + float.MinValue);
Debug.Log("int Max:" + int.MaxValue + " Min:" + int.MinValue);
Debug.Log("long Max:" + long.MaxValue + " Min:" + long.MinValue);
Debug.Log("short Max:" + short.MaxValue + " Min:" + short.MinValue);
Debug.Log("sbyte Max:" + sbyte.MaxValue + " Min:" + sbyte.MinValue);
Debug.Log("uint Max:" + uint.MaxValue + " Min:" + uint.MinValue);
Debug.Log("ulong Max:" + ulong.MaxValue + " Min:" + ulong.MinValue);
Debug.Log("ushort Max:" + ushort.MaxValue + " Min:" + ushort.MinValue);
Debug.Log("byte Max:" + byte.MaxValue + " Min:" + byte.MinValue);
}
void Update() { }
}
p.56 組み込み型とは(つづき)
・char:文字型。1文字分の情報で16ビット。文字リテラル(「'」で1文字を囲んだもの)を代入できる ・string:文字列型。0文字以上の文字の並びの情報で大きさはない。文字列リテラル(「"」で0文字以上を囲んだもの)を代入できる ・bool:論理型。1ビット分の情報。真偽値リテラルであるtrueとfalseを代入できる(後述) ※ 2進数の1と0に該当するが、C/C++のように0や1で代用することはできない
参考:その他の組み込み型と.NET型
・誤差を極力減らしたい場合(例:金銭計算)はdouble型の代わりにdecimal型を用いることができる。 1個128ビットで、decimal型実数を代入して用いるので、特殊用途。 ・各型には、C#の基盤である.NETフレームワークで規定している型名「.NET型」があり、エラーメッセージなどに 用いられる。基本的には「System.型の名の先頭を大文字にしたもの」だが、下記の例外がある int ⇒ System.Int32、long ⇒ System.Int64、short ⇒ System.Int16、float ⇒ System.Single uint ⇒ System.UInt32、ulong ⇒ System.UInt64、ushort ⇒ System.UInt16、 bool ⇒ System.Boolean
p.56 型を変換する
・範囲の大きい同種の型に代入する場合は、自動的に暗黙の型変換が行われる 例: int i = 5; long a = i; //暗黙の型変換でlongになる ・整数型から実数型に代入する場合は、自動的に暗黙の型変換が行われる 例: int i = 5; double a = i; //暗黙の型変換でdoubleになる ・実数を整数型に代入する場合は、明示的な型変換(キャスト)が必要で「(型名)」を前置する ※ これをキャスト演算子ともいう 例: double a = 3.14; int i = (int)a; //int型にキャストしてからなら代入可能で3になる ・実数リテラルを整数型にキャストすることも可能 例: int i = (int)3.14; //int型にキャストしてからなら代入可能で3になる ・実数から整数型にキャストすると小数点以下切捨てになる(四捨五入ではない)
ミニ演習:mini057
・パブリック変数で実数を受け取ってint型の変数にキャストして代入し、その値を表示しよう
作成例
using UnityEngine;
public class mini057 : MonoBehaviour {
public double num;
void Start() {
int i = (int)num; //得た実数値をint型にキャストして代入
Debug.Log(i);
}
void Update() { }
}
p.56 型を変換する(つづき)
・文字列型以外の各型を文字列型に変換するには、""(0文字の文字列)に「+」で連結すると良い 例: int i = 365; string s = "" + i; //文字列"365"になる
参考:数字列から整数/実数型への変換
・数字のみの文字列を整数に変換するにはC#が提供している int.Parse(文字列)を使うことができる 例: string s = "365"; int i = int.Parse(s); //整数365になる
提出:ミニ演習:mini057