c#如何对整数除法的结果进行取整? 9 月,2 周 Questions & Answers 233205 我特别考虑了在使用C#或Java等语言时如何显示分页控件 如果我有x项目,我想在每页y的块中显示,需要多少页
# 1 楼答案 找到了一个优雅的解决方案: int pageCount = (records + recordsPerPage - 1) / recordsPerPage; 资料来源:Number Conversion, Roland Backhouse, 2001
# 2 楼答案 在CPU级别上,转换为浮点并返回似乎是一种巨大的时间浪费 伊恩·纳尔逊的解决方案: int pageCount = (records + recordsPerPage - 1) / recordsPerPage; 可以简化为: int pageCount = (records - 1) / recordsPerPage + 1; 事实上,它没有Brandon DuRette指出的溢出错误,而且因为它只使用一次,所以如果recordsPerPage来自从配置文件或其他东西获取值的昂贵函数,则不需要专门存储它 也就是说,如果配置的话,这可能是低效的。fetch_值用于数据库查找或其他: int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page'); 这会创建一个您并不真正需要的变量,它可能会(轻微)影响内存,而且输入太多: int recordsPerPage = config.fetch_value('records per page') int pageCount = (records + recordsPerPage - 1) / recordsPerPage; 这是一行,只获取一次数据: int pageCount = (records - 1) / config.fetch_value('records per page') + 1;
# 3 楼答案 这会给你想要的。你肯定希望每页有x个项目除以y个项目,问题是当出现不均匀的数字时,所以如果有部分页面,我们也希望添加一页 int x = number_of_items; int y = items_per_page; // with out library int pages = x/y + (x % y > 0 ? 1 : 0) // with library int pages = (int)Math.Ceiling((double)x / (double)y);
# 1 楼答案
找到了一个优雅的解决方案:
资料来源:Number Conversion, Roland Backhouse, 2001
# 2 楼答案
在CPU级别上,转换为浮点并返回似乎是一种巨大的时间浪费
伊恩·纳尔逊的解决方案:
可以简化为:
事实上,它没有Brandon DuRette指出的溢出错误,而且因为它只使用一次,所以如果recordsPerPage来自从配置文件或其他东西获取值的昂贵函数,则不需要专门存储它
也就是说,如果配置的话,这可能是低效的。fetch_值用于数据库查找或其他:
这会创建一个您并不真正需要的变量,它可能会(轻微)影响内存,而且输入太多:
这是一行,只获取一次数据:
# 3 楼答案
这会给你想要的。你肯定希望每页有x个项目除以y个项目,问题是当出现不均匀的数字时,所以如果有部分页面,我们也希望添加一页