我如何将一个浮点四舍五入到C#中最接近的int?
在C#中,我如何将浮点数四舍五入到最接近的int?
我看到Math.Ceiling和Math.Round,但是这些返回一个小数。 我使用其中的一个然后投到一个Int?
如果你想四舍五入到最近的 int:
int rounded = (int)Math.Round(precise, 0);
你也可以使用:
int rounded = Convert.ToInt32(precise);
哪个将使用Math.Round(x, 0);
轮到你投。 它看起来更整洁,但略显不太清晰的海事组织。
如果你想要整理 :
int roundedUp = (int)Math.Ceiling(precise);
closures我的头顶上:
float fl = 0.678; int rounded_f = (int)(fl+0.5f);
(int)Math.Round(myNumber,0)
最简单的就是加0.5f
,然后把它转换成int。
我使用其中的一个然后投到一个Int?
是。 这样做没有问题。 小数和双精确表示整数,所以不会有表示错误。 (你不会得到一个例子,例如Round返回4.999而不是5)
您可以强制转换为int,只要您确定它在int的范围内(Int32.MinValue到Int32.MaxValue)。