在 C# 中,如何将浮点数向上舍入为最接近的 int?

发布于 2024-07-20 12:49:12 字数 108 浏览 7 评论 0原文

在 C# 中,如何将 float 向上舍入为最接近的 int?

我看到 Math.Ceiling 和 Math.Round,但它们返回小数。 我是否使用其中之一然后转换为 Int?

In C#, how do I round a float upwards to the nearest int?

I see Math.Ceiling and Math.Round, but these returns a decimal. Do I use one of these then cast to an Int?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

菩提树下叶撕阳。 2024-07-27 12:49:12

如果您想四舍五入到最近 int:

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

您还可以使用:

int rounded = Convert.ToInt32(precise);

这将使用 Math.Round(x, 0); 为您进行四舍五入和转换。 它看起来更整洁,但在我看来稍微不太清晰。


如果您想向上舍入

int roundedUp = (int)Math.Ceiling(precise);

If you want to round to the nearest int:

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

You can also use:

int rounded = Convert.ToInt32(precise);

Which will use Math.Round(x, 0); to round and cast for you. It looks neater but is slightly less clear IMO.


If you want to round up:

int roundedUp = (int)Math.Ceiling(precise);
青丝拂面 2024-07-27 12:49:12

从我的头顶上掉下来:

float fl = 0.678;
int rounded_f = (int)(fl+0.5f);

Off the top of my head:

float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
叹沉浮 2024-07-27 12:49:12

(int)Math.Round(myNumber, 0)

(int)Math.Round(myNumber, 0)

剪不断理还乱 2024-07-27 12:49:12

最简单的方法是添加 0.5f 到其中,然后将其转换为 int。

The easiest is to just add 0.5f to it and then cast this to an int.

债姬 2024-07-27 12:49:12

我是否使用其中之一然后转换为 Int?

是的。 这样做是没有问题的。 小数和双精度数可以精确地表示整数,因此不会出现表示错误。 (例如,您不会遇到 Round 返回 4.999...而不是 5 的情况。)

Do I use one of these then cast to an Int?

Yes. There is no problem doing that. Decimals and doubles can represent integers exactly, so there will be no representation error. (You won't get a case, for instance, where Round returns 4.999... instead of 5.)

疯了 2024-07-27 12:49:12

如果您确定它在 int 范围内(Int32.MinValue 到 Int32.MaxValue),则可以转换为 int。

You can cast to an int provided you are sure it's in the range for an int (Int32.MinValue to Int32.MaxValue).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文