以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/int_Mathf_FloorToIntより取得しました。


floatをintにキャスト(変換)する時の(int)とMathf.FloorToIntの挙動の違い【Unity】【C#】




ゲームを作ってるとfloatをintにキャスト(変換)したい事はよくあります。

小数部分を切り捨てたい場合、Unityでは主に(int)Mathf.FloorToIntという選択肢があります。


この2つ、正の値なら結果に変わりはないのですが、

float value1 = 1.2f;
float value2 = 3.9f;
Debug.Log($"{value1}(float)をint化, FloorToInt : {Mathf.FloorToInt(value1)}, (int) : {(int)value1}");
Debug.Log($"{value2}(float)をint化, FloorToInt : {Mathf.FloorToInt(value2)}, (int) : {(int)value2}");


負の値の場合は結果が変わります。

float value1 = -1.2f;
float value2 = -3.9f;
Debug.Log($"{value1}(float)をint化, FloorToInt : {Mathf.FloorToInt(value1)}, (int) : {(int)value1}");
Debug.Log($"{value2}(float)をint化, FloorToInt : {Mathf.FloorToInt(value2)}, (int) : {(int)value2}");


(int)は単純に小数部を無くしていますが、Mathf.FloorToIntは整数部分の値が変わっています。

つまり(int)は0に近い方に、Mathf.FloorToIntはより小さい方に切り捨てるという違いがあります。






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/int_Mathf_FloorToIntより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14