71

C#で、フロートを最も近いintに上向きに丸めるにはどうすればよいですか?

Math.CeilingとMath.Roundが表示されますが、これらは小数を返します。これらのいずれかを使用してからIntにキャストしますか?

4

6 に答える 6

155

最も近い整数に丸めたい場合:

int rounded = (int)Math.Round(precise, 0);

次のものも使用できます。

int rounded = Convert.ToInt32(precise);

これはMath.Round(x, 0);あなたのために丸めてキャストするために使用されます。見た目はすっきりしていますが、IMOの明瞭度はやや劣ります。


切り上げたい場合:

int roundedUp = (int)Math.Ceiling(precise);
于 2009-05-25T00:13:59.813 に答える
16

頭のてっぺんから:

float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
于 2009-05-25T00:10:40.397 に答える
3

(int)Math.Round(myNumber、0)

于 2009-05-25T00:07:41.620 に答える
2

最も簡単なのは、それに追加0.5fしてから、これをintにキャストすることです。

于 2009-05-25T00:22:29.720 に答える
1

これらのいずれかを使用してからIntにキャストしますか?

はい。それをするのに問題はありません。10進数とdoubleは整数を正確に表すことができるため、表現エラーは発生しません。(たとえば、Roundが5ではなく4.999 ...を返す場合は発生しません。)

于 2009-05-25T00:21:55.383 に答える
0

intの範囲(Int32.MinValueからInt32.MaxValue)にあることが確実であれば、intにキャストできます。

于 2009-05-25T07:01:11.260 に答える