数值型函数
数值类型函数可以输入数字,并返回一个数值。大多数可以达到小数点后 38 位。一部分则支持 30 位或 36 位小数。本节主要介绍一些常用的数值函数。
1. ABS(n) 函数
用于返回绝对值。该函数输入一个参数,参数类型为数值型,假如参数为可以隐式转换成数值类型,那么也可以。
select abs(100), abs(-100), abs('100')
from dual;
2. ROUND(for number)函数。
该函数的具体原型是 ROUND(n,integer) 。它将数值 n 四舍五入成第二个参数指定的形式的十进制数。
参数 integer 要求是整数,如果不是整数,那么它将被自动截取为整数部分。
当 integer 为正整数时,表示 n 被四舍五入为 integer 位小数。
如果该参数为负数,则 n 被四舍五入至小数点向左 integer 位。
示例脚本如下:
select round(100.23456, 4), round(100.23456, 2.56), round(155.23456, -2)
from dual;
3. TRUNC(for number)函数。
该函数的具体原型是 TRUNC(n,integer) 。
它把数值 n 根据 integer 的值进行截取,截取时和 integer 的正负有关。
参数 integer 要求是整数,如果不是整数,那么它将被自动截取为整数部分。
当 integer 为正整数时,表示 n 将截取到 integer 位小数;
如果 integer 为负数,则截取到小数点左第 integer 位,被截取部分用 0 代替。
示例脚本如下:
select trunc(100.23456, 4),
trunc(100.23456, 2.56),
trunc(155.23456, -2),
trunc(155.23456)
from dual;
4. MOD(n2,n1) 函数
该函数表示返回 n2 除以 n1 的余数。
参数为任意数值或可以隐式转成数值的类型。
如果 n1 为 0,那么该函数将返回 n2 。
select mod(5, 2), mod(8 / 3, 5), mod('10', 5), mod(-10, 6), mod(1, 0)
from dual;
5. CEIL(n) 函数
其返回结果是大于等于输入参数的最小整数。
该输入参数要求是十进制数值类型,或可以隐式地转换成数值的类型,可以是非整数。
示例脚本如下:
select ceil(10), ceil('10.5'), ceil(-10.2)
from dual;
6. SIGN(n) 函数
返回参数 n 的符号。
正数返回 1 , 0 返回 0 ,负数返回 -1 。
但如果 n 为 BINARY_FLOAT 或 BINARY_DOUBLE 类型时, n>=0 或者 n=NaN 函数会返回 1 。
select sign('9'), sign(-9), sign(0.00), sign(-2 * '9')
from dual;
7. COS(n) 函数
用于返回参数 n 的余弦, n 为弧度表示的角度。
示例脚本如下:
select cos(3.1415926), cos('3.1415926')
from dual;
与此类函数类似的还有如下几个。
ACOS(n):返回 n 的反余弦值。
COSH(n):返回 n 的双曲余弦值。
SIN(n):返回 n 的正弦值。
SINH(n):返回 n 的双曲正弦值。
ASIN(n):返回 n 的反正弦值。
TAN(n):返回 n 的正切值。
TANH(n):返回 n 的双曲正切值。
ATAN(n):返回 n 的反正切值。
8. SQRT(n) 函数。
该函数返回 n 的平方根。
n 为数字类型的时候不能为负数,将返回一个实数,当 n 为 BINARY_FLOAT 或 BINARY_DOUBLE 类型时, n<0 将返回 NaN 。
示例脚本如下:
SELECT SQRT(100),SQRT('53.9')FROM DUAL;
9. POWER(n2,n1) 函数。
利用该函数可以得到 n2 的 n1 次幂的结果。
这两个参数为任意数值,但如果 n2 为负数,那么 n1 必须为整数。
示例脚本如下:
select power(5, 2), power('5', 2), power(5.5, 2.5), power(-5, 2), 5 * 5
from dual;
与其相近的函数有:
EXP(n)函数,表示返回e的n次幂,e为数学常量,e=2.71828183...。
10. LOG(n1,n2) 函数。
该函数可以返回以 n1 为底 n2 的对数, n1 是除 1 和 0 以外的任意正数。
n2 为正数。
示例脚本如下:
select log(10, 100), log(10.5, '100'), power(10, 2)
from dual;
与其相近的函数有:
LN(n)函数,表示返回n的自然对数。n要求大于0。