C#中两数相除会只取到整数部份,据我猜测,可能是C#做内存分配时,只分配成了int型之类的整型,所以我们做两数相除又想取小数部份的话一定要加强制转换
例:
错误的例子:double m=10/6; 这里的m会得到结果1
正确的例子:double m=(double)10/6;这里我们才得到了1.6666666这一类的小数。
但是注意 double m=(double)(10/6);是错误的,因为(10/6)会分配成一个整型内存,最后得到一个1再转成double的内存。
现在讲讲取页数的方法,一般的做法是10%6==0就在结果加1,实际上,ms给我们提供了一个Math.Ceiling的方法,这个方法的作用是取不小于当前数的最小整数。写法一定要注意前面说的取小数,
例:Response.Write(Math.Ceiling((double)10/6))这样将会输出2