我如何将一个浮点四舍五入到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)。