史上最简洁的向上取整(机房重构知识点总结)

在机房收费系统的基本数据设定中,有一个单位递增时间,这就需要我们满足如下需求:

假如递增单位时间是5,那么需要实现如下的效果:

5-->5

6-->10

7-->10

11-->15

我们一步一步来,先看一个简单的例子:

2.0-->2

2.1-->3

2.4-->3

2.6-->3

我开始用的取整,然后加1,结果带有小数的可以达到目的,但这会让2.0变为3,怎么办呢?abs(int(-x)),先转换为负数,取整后再变为正数即可。因为int(),会让一个浮点数取为比本身小的整数,2.6变为2,-2.6则会变为-3。

有这个为基础,机房的需求也迎刃而解,abs(int(-6/5))*5=10。方法很简洁,因为自己第一次做机房忽略了,特总结出来警示自己。

史上最简洁的向上取整(机房重构知识点总结)

时间: 2024-10-21 04:52:06

史上最简洁的向上取整(机房重构知识点总结)的相关文章

向上取整ceil()

向上取整ceil() ceil() 方法可对一个数进行向上取整. 语法: Math.ceil(x) 参数说明: 注意:它返回的是大于或等于x,并且与x最接近的整数. 我们将把 ceil() 方法运用到不同的数字上,代码如下: <script type="text/javascript"> document.write(Math.ceil(0.8) + "<br />") document.write(Math.ceil(6.3) + &quo

js只保留整数,向上取整,四舍五入,向下取整等函数

1.丢弃小数部分,保留整数部分parseInt(5/2)2.向上取整,有小数就整数部分加1Math.ceil(5/2)3,四舍五入.Math.round(5/2) 1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.floor(5/2) Math 对象的方法 方法 描述 abs(x) 返回数的绝对值 acos(x) 返回数的反余弦值 asin(x) 返回

向上取整算法

在进行内存分配的时候一般都需要在实际使用内存大小的基础上进行内存对齐,比如一般32位平台进行4字节对齐,而64位平台使用8字节对齐等等. 一般采用的算法是先利用公式 $int(\frac{a + b - 1} { b})$(其中a是实际使用的内存, b是对齐值) 然后根据这个值乘以b即可得到对应的对齐值 公式推导 $$ 假设 A = NB +M (M \in \left[0,B-1\right])$$ $$\because\frac{A}{B} = N + \frac{M}{B}$$ $$\be

[小技巧] 倍数的向上取整和向下取整

啥叫倍数的向上取整与向下取整呢? 举个例子,你有一个函数,用来分配一块内存,为了提高运行速度,要对内存大小进行对齐. function NewMemBlock(const BlockSize, AlignSize: Integer): Pointer; var NewSize: Integer; begin NewSize := ... GetMem(Result, NewSize); end; 假设 BlockSize = 10,AlignSize = 8 所谓向下取整,即 NewSize =

SQL 向上取整、向下取整、四舍五入取整的实例!round、rounddown、roundup

sql server ==================================================== [四舍五入取整截取] select round(54.56,0) ==================================================== [向下取整截取] SELECT FLOOR(54.56) ==================================================== [向上取整截取] SELECT CE

向上取整

(a+(b-1))/b 34 / 11 + (34 % 11 != 0 ? 1 : 0) CUDA计算中,可以采用这两种方式来表示向上取整.

python 向上取整ceil 向下取整floor 四舍五入round

#encoding:utf-8import math #向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2.3)print "math.ceil(2.6) => ", math.ceil(2.6) #向下取整print "\nmath.floor---"print "math.floor(2.3) => ", ma

【向上取整/向下取整】C语言向上或向下取整 函数

C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2.C/C++中的整数除法运算符"/"本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关. 3.使用floor函数.floor(x)返回的是小于或等于x的最大整数.如: floor(2.5) = 2 floor(-2.5) = -3 4.使用ceil函数.ceil(x)返回的是大于x的最小整数.如: c

取整,向上取整,向下取整

取整 符号:[ ]  范围   [x]  =  {y ∈ N | y < = x && y > x - 1} 向下取整 符号:?? (floor)floor为地板 横线就在下面   范围 同取整 向上取整 符号:?? (ceiling) ceiling为天花板 横线就在上面 范围 ?x? = {y ∈ N | y > = x && y < x+1} 百度半天都难找到符号 自制百科 随时查阅