正如here所解释的,Math.Ceiling返回:“大于或等于a的最小整数值”。但后来它说:“请注意,此方法返回Double类型而不是整数类型。”我只是想知道为什么?
答案 0 :(得分:31)
因为double的最大值比整数支持的大得多。
如果返回一个整数,则无法在double
上询问值大于Int32.MaxValue
(或甚至Int64.MaxValue
)的天花板。
答案 1 :(得分:2)
我认为'注意'的目的是确保人们不会被“整数值”这个词误导,认为返回值必然是整数类型。正如其他答案所指出的,并非所有积分值都可以存储在integer-y 类型中。
答案 2 :(得分:1)
最大整数类型的范围仍远小于Double的范围。所以很多有效的double值都没有Ceiling()。