为了账号安全,请及时绑定邮箱和手机立即绑定

如何取整整数除法的结果?

如何取整整数除法的结果?

沧海一幻觉 2019-10-05 11:08:02
我在考虑使用诸如C#或Java之类的语言时如何显示分页控件。如果我有x个项目想要以每页y个块的形式显示,那么需要多少个页面?
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在CPU级别,转换为浮点数和返回浮点数似乎是对时间的巨大浪费。


伊恩·尼尔森(Ian Nelson)的解决方案:


int pageCount = (records + recordsPerPage - 1) / recordsPerPage;

可以简化为:


int pageCount = (records - 1) / recordsPerPage + 1;

AFAICS,它没有Brandon DuRette指出的溢出错误,并且由于它只使用一次,因此,如果它来自昂贵的函数来从配置文件中获取值,则不需要专门存储recordsPerPage。的东西。


也就是说,如果config.fetch_value使用数据库查找或其他方法,则这可能效率不高:


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;


查看完整回答
反对 回复 2019-10-05
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

对于C#,解决方案是将值转换为双精度值(因为Math.Ceiling需要双精度值):


int nPages = (int)Math.Ceiling((double)nItems / (double)nItemsPerPage);

在Java中,您应该对Math.ceil()执行相同的操作。


查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 696 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信