数値の基本
数値の型は、主にint
型とfloat
型になります。
単純に言えば、int
は整数で、float
は小数点のある数字(実数)です。
int
型の場合、64bitの数値として、-9223372036854775807 〜 9223372036854775807
までの数値を扱う事ができます。
float
型の場合、エンジン内の関数などでは32bitの浮動小数点値を使用しています。
これは10進数の6桁になりますので、大きな数字を表現する場合はint
型として処理するほうが良いと思います。
数値の作成方法
数値を作成するには数値リテラルを使用します。
整数の作成
var value0 :int = 1
var value1 :int = -1
# 静的型付け
var value2 = 1
実数の作成
var value0 :float = 1.0
var value1 :float = -1.0
# 静的型付け
var value2 = 1.0
数値に変換する方法
別の型を数値に変換(キャスト)する関数が用意されています。
intクラスメソッド
メソッド名 | 説明 |
---|---|
int(bool) |
bool 型をint 型に変換します。true なら1 に、false なら0 に変換します。 |
int(float) |
float 型をint 型に変換します。端数は切り捨てられますので、例えば2.7 の場合は2 に、-0.7 の場合は0 になります。 |
int(String) |
有効なString 型をint 型に変換します。すべて無効な文字列は無視され0 が返されます。例えば"test1" の場合は1 に、"1e3" の場合は13 になります。 |
floatクラスメソッド
メソッド名 | 説明 |
---|---|
float(bool) |
bool 型をfloat 型に変換します。true なら1.0 に、false なら0.0 に変換します。 |
float(int) |
int 型をfloat 型に変換します。1 の場合は1.0 に変換されます。 |
float(String) |
有効なString 型をfloat 型に変換します。このメソッドはfloat 文字列("0.72" など)や指数表記文字列を受け入れるため、1e3 の場合は1000.0 になります。(1e3 = 1×10の3乗 = 1000 )それまで解析した結果を返して処理を終了するため、 1e3a2 の場合は1000.0 となり、後半のa2 は無効となります。 |
特殊な数値の表し方
2進整数(int型)
0
と1
で表す2進数ですが、Godot Engineでは、最終的にint
型として扱われます。
例えば0101
という二進整数の場合、0b0101
と記述することができ、これを出力すると5
になります。
逆に、5
を二進整数で表すと0b0101
になりますので、明示的な型の変換は必要はなく、整数を二進整数として演算することが可能です。
二進整数(ビット)演算については別のページで詳しく解説します。
16進整数(int型)
0~F
までの1桁が0~15
まである数値です。Godot Engineでは、最終的にint
型として扱われます。
例えばFFF
という16進整数の場合、0xFFF
と記述することができ、これを出力すると4095
になります。
数値の計算
数値は演算子を使って計算することができます。
算術演算子
# 加算(足し算)
var value1:int = 3 + 2 # value = 5
# 減算(引き算)
var value2:int = 3 - 2 # value = 1
# 乗算(掛け算)
var value2:int = 3 * 2 # value = 6
# 除算(割り算)
var value2:float = 3.0 / 2.0 # value = 1.5
# 剰余(余り)
var value2:int = 3 % 2 # value = 1
複合代入演算子
var value:float = 3.0
value += 2.0 # =5.0 加算
value -= 2.0 # =1.0 減算
value *= 2.0 # =6.0 乗算
value /= 2.0 # =1.5 除算
# 以下はint型のみ
var value:int = 3
value %= 2 # =1 剰余