2

Mathf.RoundToInt() について質問があります

int val = Mathf.RoundToInt(10.5f);
val = Mathf.RoundToInt(9.5f);
val = Mathf.RoundToInt(8.5f);

上記は、「11、10、9」ではなく、「10、10、8」を生成します。

Unity のリファレンス マニュアルによると、Mathf.RoundToInt() は、小数点第 1 位が「5」の場合 (例: 8.5 -> 8.0) は「偶数」を返します。

Mathf.RoundToInto() が通常の丸めとは異なり、このように返される理由を知りたいです (例: 8.5 ->9.0、9.5 -> 10.0)。

4

1 に答える 1

5

http://en.wikipedia.org/wiki/Rounding#Round_half_to_evenから:

[...] 値の妥当な分布の場合、丸められた数値の期待 (平均) 値は元の数値と同じです。

于 2013-10-30T00:13:48.090 に答える