【Godot】警告「Integer division, decimal part will be discarded」を消す方法

この記事では、警告「Integer division, decimal part will be discarded. (整数除算、小数部は切り捨てる)」を消す方法について紹介します。

警告「Integer division, decimal part will be discarded」を消す方法

整数除算とは

GDScriptでは、整数同士の除算を行うと端数が切り捨てられます。例えば以下のコード (7÷3=2.333…) を実行すると、

	var a = 7
	var b = 3
	print(a / b)

出力結果は以下の通りとなります。

出力結果
2

整数同士の除算により生じた端数「0.333…」は切り捨てられます。

ということで、この警告は「この切り捨てが発生するけど良いですか?」という趣旨のものです。

この警告を除去するには

floatの除算であれば警告は出ないので、intからfloatに変換してintに戻す…ということを行えば警告は消えます。

	var a = 7
	var b = 3
	// 1.0 を掛けて float にしてから除算を行い、int() で整数値に戻す
	print(int(1.0 * a / b))

ただ、これを毎回行うのは手間なので、メニューの「プロジェクト > プロジェクト設定」を開き…

一般 > プロパティ > デバッグ > GDScript」からInteger Division」のチェックを外して警告を無効にした方が良さそうです。

ちなみになぜこのような警告が出るのかというと、GDScriptのもととなった Python では、整数値同士の除算を行うと自動で float になってしまうので、その動作の違いを明示的にするため…のような気がします(推測)。

参考