C#で、フロートを最も近いintに上向きに丸めるにはどうすればよいですか?
Math.CeilingとMath.Roundが表示されますが、これらは小数を返します。これらのいずれかを使用してからIntにキャストしますか?
最も近い整数に丸めたい場合:
int rounded = (int)Math.Round(precise, 0);
次のものも使用できます。
int rounded = Convert.ToInt32(precise);
これはMath.Round(x, 0);
あなたのために丸めてキャストするために使用されます。見た目はすっきりしていますが、IMOの明瞭度はやや劣ります。
切り上げたい場合:
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にキャストできます。