数值型函数
数值类型函数可以输入数字,并返回一个数值。大多数可以达到小数点后 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
。