将 double 向上舍入为 int

发布于 2025-01-05 16:25:11 字数 86 浏览 1 评论 0原文

我有一个来自 int/int 的数字(“double”)(例如 10/3)。

在 C# 上进行过度近似并将其转换为 int 的最佳方法是什么?

I have a number ("double") from int/int (such as 10/3).

What's the best way to Approximation by Excess and convert it to int on C#?

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

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

发布评论

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

评论(4

贪了杯 2025-01-12 16:25:11

您是否在询问System.Math.Ceiling

Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1

Are you asking about System.Math.Ceiling?

Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
紫竹語嫣☆ 2025-01-12 16:25:11
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
请恋爱 2025-01-12 16:25:11

通过“过量近似”,我假设您正在尝试“四舍五入” double 类型的数量。所以,@Doug McClean 的“天花板”方法效果很好。

这是一个注释:
如果您从 double x = 0.8; 开始,并通过 (int)x; 进行类型转换,您将得到 0。或者,如果您执行 (int)Math.Round(x);,您将得到 1
如果您从 double y = 0.4; 开始,并通过 (int)y; 进行类型转换,您将得到 0。或者,如果执行 (int)Math.Round(y);,您将得到 0

By "Approximation by Excess", I assume you're trying to "round up" the number of type double. So, @Doug McClean's "ceiling" method works just fine.

Here is a note:
If you start with double x = 0.8; and you do the type conversion by (int)x; you get 0. Or, if you do (int)Math.Round(x); you get 1.
If you start with double y = 0.4; and you do the type conversion by (int)y; you get 0. Or, if you do (int)Math.Round(y); you get 0.

久光 2025-01-12 16:25:11

考虑 2.42 ,你可以说它是 242/100 顺便说一句,你可以将其简化为 121/50 。

Consider 2.42 , you can say it's 242/100 btw you can simplify it to 121/50 .

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