gpt4 book ai didi

delphi - 识别页面中结果数量的数学

转载 作者:行者123 更新时间:2023-12-03 18:27:49 28 4
gpt4 key购买 nike

无论出于何种原因,我无法弄清楚如何识别给定页面中的结果数量。我有一个数据列表和一个属性 PageSize它确定了一页应该容纳多少结果。假设有 120 个结果,页面大小为 25。这意味着总共应该有 5 个页面,前 4 个页面有 25 个记录,第 5 个只有 20 个记录。现在,我得到的结果是全面的,例如我可能得到 50当它应该是 20 .

我正在编写此函数以返回指定页面中的结果数,但我似乎无法正确计算简单的数学(我从来不擅长数学)。每页没有实际的列表,我可以简单地阅读 Count识别该页面中的记录数 - 我需要使用此函数动态计算它。

请引用 CALCULATION DONE HERE 下面的代码行:

function TMyData.SizeOfPage(const Index: Integer): Integer;
begin
//Index = Page Number (0 ... MAX)
//Result = Number of results in given page
//PageCount = Total number of pages (from other function)
//RecordCount = Total number of records (all pages)
Result:= 0; //Default
//Validate index bounds
if (Index >= 0) and (Index < PageCount) then begin
if Index < PageCount-1 then begin
//Just return full size of one page
Result:= PageSize;
end else begin
//Return number of records in the last page
//--- CALCULATION DONE HERE ---
Result:= RecordCount - Trunc(RecordCount / PageSize);
end;
end else begin
raise Exception.Create('Page index out of bounds ('+IntToStr(Index)+')');
end;
end;

最佳答案

我认为没有理由在这里使用浮点运算。如果整数算术足够,我总是避免浮点算术。

我会这样写:

ItemsOnLastPage := 1 + (RecordCount-1) mod PageSize;

或者这个版本:
ItemsOnLastPage := RecordCount - (PageCount-1)*PageSize;

这特别容易理解。您减去所有整页上显示的记录,剩下的是最后一页上的记录。

至于 PageCount去,你可以这样计算:
PageCount := (RecordCount+PageSize-1) div PageSize;

感谢@Rob 的洞察力。

关于delphi - 识别页面中结果数量的数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com