我特别考虑的是如何在使用c#或Java等语言时显示分页控件。
如果我有x个项目,我想在每页y块中显示,需要多少页?
我特别考虑的是如何在使用c#或Java等语言时显示分页控件。
如果我有x个项目,我想在每页y块中显示,需要多少页?
当前回答
你可以使用
(int)Math.Ceiling(((decimal)model.RecordCount )/ ((decimal)4));
其他回答
您需要执行浮点除法,然后使用ceiling函数将值四舍五入到下一个整数。
另一种替代方法是使用mod()函数(或'%')。如果有非零余数,则对除法的整数结果加1。
Ian提供的整数数学解决方案很好,但存在整数溢出错误。假设变量都是int,解决方案可以重写为使用长数学和避免错误:
int pageCount = (-1L + records + recordsPerPage) / recordsPerPage;
如果记录很长,则错误仍然存在。模解没有这个bug。
对于c#,解决方案是将值强制转换为double类型(如Math。天花板是双人间):
int nPages = (int)Math.Ceiling((double)nItems / (double)nItemsPerPage);
在java中,您应该对Math.ceil()执行相同的操作。
我为自己做了这个,感谢Jarod Elliott和SendETHToThisAddress的回复。
public static int RoundedUpDivisionBy(this int @this, int divider)
{
var result = @this / divider;
if (@this % divider is 0) return result;
return result + Math.Sign(@this * divider);
}
然后我意识到,与上面的答案相比,它对CPU来说太过了。 然而,我认为它是可读的,也适用于负数。