Unity C#で小数点を切り上げ、切り下げ、偶数丸めする方法/Mathf.Ceil、Floor、Roundの使い方

IT

Mathf並びの命令を使うことで、Unityの値の小数点を切り上げ、切り捨て、偶数丸めすることができます。
最後にfがついていることから察せられる通り、float値(浮動小数点型)にのみ使うことができます(値がdoubleなどだとエラーが出る)。

スポンサーリンク

前準備

//Unity C#
void Start()
{

float a, b, c,d,e;
a = 0.5f;
b = 1.4f;
c = 1.5f;
d = 1.6f;
e = 2.5f;

GameObject text = GameObject.Find("Text");
text.GetComponent<Text>().text = "元の値:" + 
a.ToString() + " " +
b.ToString() + " " + 
c.ToString() + " " + 
d.ToString() + " " +
e.ToString();
}
説明用のfloat値をテキストに表示するプログラムを用意しました。
unity 切り上げ 切り下げ 偶数丸め1
実行結果です。

切り上げ(Mathf.Ceil)

小数を切り上げてfloat値で戻す
Mathf.Ceil(float値);

小数を切り上げてint値で戻す
Mathf.CeilToInt(float値);

//Unity C#
void Start()
{
text.GetComponent<Text>().text = "切り上げ:" +
Mathf.Ceil(a).ToString() + " " +
Mathf.Ceil(b).ToString() + " " +
Mathf.Ceil(c).ToString() + " " +
Mathf.Ceil(d).ToString() + " " +
Mathf.Ceil(e).ToString();
}
値をMathf.Ceil()で包むと、小数点を切り上げすることができます。
unity 切り上げ 切り下げ 偶数丸め2
実行結果です。
またCeilCeilToIntにすることで、戻り値をint値にすることができます。

切り捨て(Floor)

小数を切り捨ててfloat値で戻す
Mathf.Floor(float値);

小数を切り捨ててint値で戻す
Mathf.FloorToInt(float値);

//Unity C#
void Start()
{
text.GetComponent<Text>().text = "切り捨て:" +
Mathf.Floor(a).ToString() + " " +
Mathf.Floor(b).ToString() + " " +
Mathf.Floor(c).ToString() + " " +
Mathf.Floor(d).ToString() + " " +
Mathf.Floor(e).ToString();
}
値をMathf.Floor()で包むと、小数点を切り捨てすることができます。
unity 切り上げ 切り下げ 偶数丸め3
実行結果です。
またFloorFloorToIntにすることで、戻り値をint値にすることができます。

偶数丸め(Round)

偶数丸めしてfloat値で戻す
Mathf.Round(float値);

偶数丸めしてint値で戻す
Mathf.RoundToInt(float値);

//Unity C#
void Start()
{
text.GetComponent<Text>().text = "切り捨て:" +
Mathf.Round(a).ToString() + " " +
Mathf.Round(b).ToString() + " " +
Mathf.Round(c).ToString() + " " +
Mathf.Round(d).ToString() + " " +
Mathf.Round(e).ToString();
}
最後にMathf.Roundですが、同様に値を包んでみると、
unity 切り上げ 切り下げ 偶数丸め4
偶数丸めの状態になります。五捨五入とも呼びます。
またRoundRoundToIntにすることで、戻り値をint値にすることができます。

偶数丸めとは

//Unity C#

float a, b, c, d, e;
//0と2では0が近いので0になる
a = 0.5f;
b = 1.4f;
//0と2では2が近いので2になる
c = 1.5f;
d = 1.6f;
//2と4では2が近いので2になる
e = 2.5f;
偶数丸めでは値が0.5など.5の時、最も近い偶数に値を丸めます。
それ以外の小数の場合は、最も近い整数に丸めます。
//Unity C#

//Mathf.Roundで1になる
a = 0.51f;
n.5より少しでも値がズレていれば、最も近い整数に丸められます。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント