将double翻转为int

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

什么是Excess逼近的最佳方法,并在C#上将其转换为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 ) ; 

通过“超出逼近”,我假设你试图“舍入”双重类型的数量。 所以@Doug McClean的“天花板”方法效果很好。

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

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

Interesting Posts