将一个二重取整为整数



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

在C#中,用Excess近似并将其转换为int的最佳方法是什么?

你在问System.Math.Ceiling吗?

Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;

通过"通过过量近似",我假设您试图"四舍五入"类型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

考虑2.42,你可以说它是242/100 btw,你可以将它简化为121/50。

最新更新