
2.取整(小) select floor(-1.001) value from dual;

3.取整(截取) select trunc(-1.002,[存放0、1、。。。]) value from dual;
中括号中意思是0位小数,1位小数。。。

4.取整(舍入) select round(*) value from dual;

已有 0 人发表留言,猛击->>这里<<-参与讨论
1.取整(大) select ceil(-1.001) value from dual;
2.取整(小) select floor(-1.001) value from dual;
3.取整(截取) select trunc(-1.002,[存放0、1、。。。]) value from dual;
中括号中意思是0位小数,1位小数。。。
4.取整(舍入) select round(*) value from dual;
已有 0 人发表留言,猛击->>这里<<-参与讨论转载于:https://www.cnblogs.com/smallsilver/archive/2012/02/22/2543948.html
Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。
基本的运算:
使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层:
和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,请看下图:
但是整数和浮点数混合运算的结果就变成浮点数了:
为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。
那整数的除法运算遇到除不尽的时候,结果难道不是浮点数吗?我们来试一下:
对于上述的结果,一是注意python2.6和python3的区别,在就是向上取整和向下取整(后面都会讲到)
解释:
在Python 2.6中,'/'执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);'//'执行Floor除法,与Python3.0一样,对于整数执行截断除法,浮点数执行浮点除法。
在Python 3.0中,'/'总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;'//'执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。
Python提供了一个求余的运算 % 可以计算余数:
如果我们要计算 11 / 4 的精确结果,按照"整数和浮点数混合运算的结果是浮点数"的法则,把两个数中的一个变成浮点数再运算就没问题了:
试一试:
请计算 2.5 + 10 / 4 ,并解释计算结果为什么不是期望的 5.0 ?
请修复上述运算,使得计算结果是 5.0
取整函数简单说就是取一个数的整数部分。 它分为向下取整和向上取整两种类型。
向下取整的数学符号是:只有下端弯曲的方括号
它表示取去掉小数部分的整数,也就是小于x的最大整数,在计算机程序语言中,通常用函数 floor(x) 表示。 如:floor(3.14) = 3,floor(-3.14) = -4. 可以这样理解“floor表示地板,就是向下取整的意思”
向上取整的数学符号是:只有上端弯曲的方括号它表示取大于x的最小整数。 在计算机程序语言中,通常用函数 ceil(x) 表示。 如:ceil(3.14) = 4, ceil(-3.14) = -3.
可以这样理解"ceiling表示天花板,就是向上取整的意思“
参考:http://zh.wikipedia.org/wiki/%E5%8F%96%E6%95%B4%E5%87%BD%E6%95%B0 应用参考《数据结构》中的完全二叉树的节点个数与深度之间关系的函数用到了。