C#では、フロートを最も近い整数に丸めるにはどうすればよいですか?
Math.CeilingとMath.Roundが表示されますが、これらは小数を返します。これらのいずれかを使用してからIntにキャストしますか?
nearest intに丸める場合:
_int rounded = (int)Math.Round(precise, 0);
_
以下も使用できます。
_int rounded = Convert.ToInt32(precise);
_
Math.Round(x, 0);
を使用して、丸めてキャストします。見た目はすっきりしていますが、IMOはやや不明瞭です。
丸める場合p:
_int roundedUp = (int)Math.Ceiling(precise);
_
私の頭の上から:
float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
(int)Math.Round(myNumber、0)
最も簡単なのは、単に0.5f
それから、これをintにキャストします。
これらのいずれかを使用してからIntにキャストしますか?
はい。問題はありません。 10進数とdoubleは整数を正確に表すことができるため、表現エラーはありません。 (たとえば、Roundが5ではなく4.999 ...を返すケースは取得できません。)
Intの範囲内(Int32.MinValueからInt32.MaxValue)にあることが確実であれば、intにキャストできます。