为什么.NET中的ceiling返回Double而不是整数?

时间:2010-03-03 13:38:49

标签: c# .net math

正如here所解释的,Math.Ceiling返回:“大于或等于a的最小整数值”。但后来它说:“请注意,此方法返回Double类型而不是整数类型。”我只是想知道为什么?

3 个答案:

答案 0 :(得分:31)

因为double的最大值比整数支持的大得多。

如果返回一个整数,则无法在double上询问值大于Int32.MaxValue(或甚至Int64.MaxValue)的天花板。

答案 1 :(得分:2)

我认为'注意'的目的是确保人们不会被“整数值”这个词误导,认为返回值必然是整数类型。正如其他答案所指出的,并非所有积分都可以存储在integer-y 类型中。

答案 2 :(得分:1)

最大整数类型的范围仍远小于Double的范围。所以很多有效的double值都没有Ceiling()。