Jon*_*Jon 26
double
具有比int
以下更大的值范围:
Double值类型表示双精度64位数,其值范围从负1.79769313486232e308到正1.79769313486232e308,以及正或负零,PositiveInfinity,NegativeInfinity和Not-a-Number(NaN).
Double符合IEC 60559:1989(IEEE 754)二进制浮点运算标准.
该标准表示它double
具有52位尾数,这意味着它可以表示任何长达52位的整数而不会损失精度.
因此,如果输入足够大,则输出不适合int
(只有32位).
Rof*_*ion 22
文档说明了返回值:
最大整数大于或等于a.如果a等于NaN,NegativeInfinity或PositiveInfinity,则返回该值.
因此,返回值必须加倍,因为NaN,NegativeInfinity和PositiveInfinity是Double的字段.
Math.Ceiling
可以返回a double
或a decimal
,具体取决于传入的类型.换句话说,方法的输出类型与输入类型匹配(非常合理).
他们可以添加一个第三个重载,它接受int
并返回一个int
,但是没有太多指向这个 - 函数总是只返回它的输入.
您似乎假设其目的Math.Ceiling
是将浮点值转换为整数,但这通常不是它的使用方式.