Why does ceiling in .NET return a Double and not an integer?

.net, c#, math

Solution

Because a double has a much bigger maximum value than an integer supports.

Asking for the ceiling on a `double` that has a value greater than `Int32.MaxValue` (or even `Int64.MaxValue`) would not be possible if it returned an integer.

Problem

As explained here, Math.Ceiling returns: "The smallest integral value that is greater than or equal to a". But later it says: "Note that this method returns a Double type instead of an integral type." I'm just wondering why?

Original source