Eventuali duplicati:
Why doesn't Math.Round/Floor/Ceiling return long or int?perché math.Ceiling (double a) non restituisce direttamente int?
MSDN definito questo metodo: restituisce il più piccolo intero maggiore o uguale al numero in virgola mobile a doppia precisione specificati.
ma in realtà, è
public static double Ceiling (
double a
)
perché non tornare int direttamente? cosa ne pensa microsoft?
E, naturalmente, se si fa un cast esplicito come quello ad esempio, se il valore * non lo fa * In forma, il runtime genererà un adattamento (e avrai l'eccezione da trattare). –
È davvero sciocco: i duplicati possono comunque solo memorizzare ~ 7-8 cifre significative in modo affidabile, quindi non sarà possibile arrotondare qualcosa di più elevato di '2147483648'. –
@ ChrisBurt-Brown: Un 'double' può contenere ogni multiplo da mezzo a 2^52, che è considerevolmente più grande dell'intervallo 2^31 di' Int32' (ma inferiore all'intervallo 2^63 di un ' Int64'). – supercat