在 C# 中,如何将浮点数向上舍入到最近的 int?
我看到 Math.Ceiling 和 Math.Round,但它们返回一个小数。我是否使用其中之一然后转换为 Int?
如果要四舍五入到最接近的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?
是的。这样做没有问题。小数和双精度可以精确表示整数,所以不会有表示错误。(例如,您不会遇到 Round 返回 4.999... 而不是 5 的情况。)
如果您确定它在 int 的范围内(Int32.MinValue 到 Int32.MaxValue),您可以转换为 int。