有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

c#如何对整数除法的结果进行取整?

我特别考虑了在使用C#或Java等语言时如何显示分页控件

如果我有x项目,我想在每页y的块中显示,需要多少页


共 (3) 个答案

  1. # 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;
    
  2. # 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);