Duplicar posible:
Why doesn't Math.Round/Floor/Ceiling return long or int?por qué math.Ceiling (double a) no devuelve int directamente?
MSDN definido este método: Devuelve el más pequeño número entero mayor que o igual que el número de coma flotante de doble precisión especificada.
pero en realidad, es
public static double Ceiling (
double a
)
por qué no volver int directamente? ¿En qué piensa microsoft?
Y, por supuesto, si lo hace una conversión explícita de esa ejemplo, si el valor * no lo hace * ajuste, el tiempo de ejecución arrojará un ajuste (y obtendrá la excepción para tratar). –
Es realmente tonto: los dobles solo pueden almacenar confiablemente ~ 7-8 figuras significativas de todos modos, por lo que no podrías redondear nada superior a '2147483648'. –
@ ChrisBurt-Brown: un 'doble' puede contener cada múltiplo de la mitad hasta 2^52, que es considerablemente más grande que el rango de 2^31 de' Int32' (pero más pequeño que el rango de 2^63 de ' Int64'). – supercat