首页 / 知识
关于c#:如何舍入整数除法的结果?
2023-04-12 15:03:00

How to round up the result of integer division?在使用C#或Java等语言时,我正在考虑如何显示分页控件。 如果我想要以每页y块的形式显示x项,那么需要多少页? 找到优雅的解决方案:
资料来源:编号转换,Roland Backhouse,2001年 转换为浮点和返回似乎是CPU级别的大量浪费时间。 伊恩·尼尔森的解决方案:
可以简化为:
AFAICS,这没有Brandon DuRette指出的溢出错误,并且因为它只使用它一次,如果它来自一个昂贵的函数来从配置文件中获取值,则不需要特别存储recordsPerPage或一些东西。 即如果config.fetch_value使用数据库查找或其他东西,这可能效率低下:
这会创建一个你并不真正需要的变量,它可能具有(次要)内存含义并且输入太多:
这是一行,只获取一次数据:
对于C#,解决方案是将值转换为double(因为Math.Ceiling需要一个double):
在java中,您应该对Math.ceil()执行相同的操作。 这应该给你你想要的。您肯定希望x项目除以每页y项目,问题是当出现不均匀的数字时,所以如果有部分页面,我们还想添加一个页面。
Ian提供的整数数学解决方案很好,但是遇到整数溢出错误。假设变量都是
如果 尼克·贝拉尔迪(Nick Berardi)回答的一个变种,它避免了一个分支:
注意: 对于记录== 0,rjmunro的解决方案给出1.正确的解决方案是0.这就是说,如果你知道记录> 0(我确定我们都假设记录PerPage> 0),那么rjmunro解决方案会给出正确的结果,没有任何溢出问题。
所有整数数学解决方案都将比任何浮点解决方案更有效。 需要扩展方法:
这里没有检查(溢出, 附:你可能会发现它也很有用(它得到余数):
另一种方法是使用mod()函数(或'%')。如果存在非零余数,则递增除法的整数结果。 我执行以下操作,处理任何溢出:
如果有0结果,请使用此扩展名:
此外,对于当前页码(未被询问但可能有用):
替代在测试零时删除分支:
不确定这是否适用于C#,应该在C / C ++中使用。 一个通用方法,您可以迭代的结果可能是有意义的:
以下应该比上述解决方案更好地舍入,但是以牺牲性能为代价(由于0.5 * rctDenominator的浮点计算):
我有类似的需求,我需要将分钟转换为小时和分钟。我用的是:
您将要执行浮点除法,然后使用ceiling函数将值向上舍入为下一个整数。 |
最新内容
相关内容
python支持r语言吗?
python支持r语言吗?,代码,名称,培训,官网,第一,语言,对象,字符串,方法,后缀,python中可以支持r语言。python提供了一个模块rpy2,可以较好地完Python语言中mod表示什么意思
Python语言中mod表示什么意思,环境,培训,表示,语言,结果,负数,语法,符号,两者,规律,python语言中mod表示取模运算符。语法MOD(a,b)通常情况下python为什么不显示none
python为什么不显示none,信息,培训,赋值,参数,变量,方法,数据类型,函数,对象,语句,下面是关于Python中None的一些解释:None是一个特殊的常量。python如何显示中文字体
python如何显示中文字体,地方,培训,文件,方法,之后,中文字体,中文,模块,声明,时候,python显示中文字体的方法:在这里,你可以选择2种不同的解决python到底是什么样的语言
python到底是什么样的语言,教育,软件,人工智能,培训,代码,简介,语言,类型,程序,动态,python是一种面向对象、解释型、动态类型计算机程序设计python语言受欢迎吗
python语言受欢迎吗,代码,工作,业务,活跃,设计,发展,人工智能,培训,数据,语言,python因其简单易用的语法而获得了很多赞誉。该语言强调代码的pythonc语言取余和python取余的区
pythonc语言取余和python取余的区别,培训,资料,语言,负数,区别,被除数,符号,除数,规定,余数,今天看书发现python与C的负数取余运算结果不同,pythonmap函数怎么显示结果
pythonmap函数怎么显示结果,培训,代码,数字,函数,结果,序列,元素,参数,可能会,惰性,map()函数接收两个参数,一个是函数,一个是Iterable,map将传pythonPython和r语言的区别
pythonPython和r语言的区别,数据,分析,流程,培训,工具,系统,服务,平台,代码,语言,Python与R语言的共同特点1.Python和R在数据分析和数据挖掘pythonpython是函数式语言吗
pythonpython是函数式语言吗,培训,代码,函数,概念,指数,状态,语言,变量,计算机,程度,函数是Python内建支持的一种封装,我们通过把大段代码拆成python为什么叫胶水语言
python为什么叫胶水语言,标准,代码,培训,数据,一致,环境,周期性,软件,服务,胶水,什么是胶水语言?胶水语言(gluelanguage)是用来连接软件组件python编程语言有什么用途
python编程语言有什么用途,设计,大规模,软件,培训,数据,平台,工具,生产,面临,通用,Python是一门简单易学的编程语言。阅读好的Python程序感觉