この記事では、警告「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 になってしまうので、その動作の違いを明示的にするため…のような気がします(推測)。