向上取整/向下取整/四舍五入

August 21st, 2021 | 分类: 【案例】

【语法】

向上取整:\lceil{x}\rceil

显示:\(\lceil{x}\rceil\)

向下取整:\lfloor{x}\rfloor

显示:\(\lfloor{x}\rfloor\)

【概念】

向上取整:比自己大的最小整数;
向下取整:比自己小的最大整数;
四舍五入:更接近自己的整数;

取整:只留下整数。
1. 正数取整:把小数点去掉。
2. 负数取整,是取不大于这个负数的最大整数。

向上取整和向下取整是针对有浮点数而言的;若整数向上取整和向下取整,都是整数本身。

向上取整(Ceiling):⌈ ⌉

不管四舍五入的规则,只要后面有小数前面的整数就加1。

\(\lceil{\frac{n}{m}}\rceil==\frac{n+(m-1)}{m}\)

之所以在向上取整时,分子部分要减去1,是为了避免出现,n 能被 m 整除的情况。

例如:

\(\lceil{\frac{12}{3}}\rceil==4\)

\(\lceil{\frac{12+3}{3}}\rceil==5\)

而对 4 向上取整应该仍为 4。

暂不明白。

向下取整(Floor):⌊ ⌋

不管四舍五入的规则,只要后面有小数忽略小数给定。

【案例】

4.9 向上取整得数是5。
4.9 向下取整得数是4。

\(\lfloor{\frac{59}{60}}\rfloor=0\)

\(\lceil{\frac{59}{60}}\rceil=1\)

\(\lfloor{-\frac{59}{60}}\rfloor=-1\)

\(\lceil{-\frac{59}{60}}\rceil=0\)

C语言定义的取整运算既不是Floor也不是Ceiling,无论操作数是正是负总是把小数部分截断(Truncate),所以当操作数为正的时候相当于Floor,当操作符为负的时候相当于Ceiling。

取整函数不超过实数x的最大整数称为x的整数部分,记作[x]或INT(x)。

和整数部分紧密相关的是其小数部分,记为{x},定义为{x} =x-[x]。由[x]+1>x≥[x]不难得知1>{x}≥0,反过来,若x=[x],自然有{x}=0。这些简单的事实有时很有用处,对于给定的,要求出{x},先求出[x]就可以。

(需要注意的是,对于负数,[x]并非指x小数点左边的部分,{x}也并非指x小数点右边的部分,例如对于负数-3.7,[-3.7]=-4,而不是-3,此时{x}=-3.7-(-4)=0.3,而不是-0.7。)

取整函数(高斯函数)是一个不减函数,即对任意x1,x2∈R,若x1≤x2,则[x1]≤[x2]。