如何使(5168/2000)返回3?当前CEILING(5168/2000)返回2,需循环3次删行
如何让5168/2000的运算结果通过取整得到3?
首先得搞清楚你现在为啥CEILING返回2——十有八九是整数除法在捣乱!比如在不少编程语言或表格工具里,两个整数相除会默认截断小数,直接返回整数结果,所以5168/2000先变成了2,再套CEILING当然还是2。
下面给你几个实用的解决办法,随便挑一个都能搞定:
方法1:强制浮点除法,让CEILING正常工作
只要让除法运算先得到带小数的结果(2.584),CEILING就能正确向上取整到3。不同工具里的写法略有不同:
- Excel:直接用
CEILING(5168/2000, 1)就行(要是你之前用了QUOTIENT这类整数除法函数,换成普通除法就好) - Python:用
math.ceil(5168 / 2000)(Python3默认是浮点除法,Python2的话得写成5168.0/2000) - SQL:写成
CEILING(5168.0 / 2000),加个.0把其中一个数转成浮点型
方法2:用整数运算手动实现向上取整
如果因为场景限制没法用浮点运算,这个公式绝对好使:(5168 + 2000 - 1) // 2000
原理很简单:给被除数加上“除数减1”,再做整数除法,相当于手动模拟向上取整。算一下:5168+1999=7167,7167除以2000的整数结果就是3,完美符合你的需求。
方法3:检查CEILING的参数是否正确
有些工具里的CEILING函数需要指定“取整基数”,比如Excel的CEILING(number, significance)。如果你不小心把第二个参数设成了2或者其他值,结果就会不对。确保第二个参数是1,这样才会向上取整到最近的整数。
举个反例:要是你写了CEILING(5168/2000, 2),结果会是4,这显然不是你要的。所以确认参数是1就没问题了。
总的来说,核心就是让除法先得到正确的小数结果,再用CEILING取整,或者用整数运算的技巧手动实现向上取整——这样就能拿到3,让你的循环执行3次啦!
内容的提问来源于stack exchange,提问作者Sana01
相关产品推荐
相关产品推荐

