3.4.4 数学函数

这些函数仅适用于数值表达式。如果用于其他类型的值,将返回错误。

数学函数图例如图3-26所示。

图3-26 数学函数图例

1.数值函数

(1)abs():abs()函数返回数值的绝对值。

语法:abs(expression)

参数:

● expression:数值表达式。

查询:

结果将返回两个年龄差值的绝对值。

结果:

(2)ceil():ceil()返回大于或等于实参的最小整数。

语法:ceil(expression)

参数:

● expression:数值表达式。

查询:

结果将返回大于0.1的最小整数,即为1。

结果:

(3)floor():floor()返回小于等于表达式的最大的整数。

语法:floor(expression)

参数:

● expression:数值表达式。

查询:

小于等于0.9的最大的整数为0。

结果:

(4)round():round()返回距离表达式值最近的整数。

语法:round(expression)

参数:

● expression:数值表达式。

查询:

距离3.141592最近的整数为3。

结果:

(5)sign():sign()返回一个数值的正负。如果值为零,则返回0;如果值为负数,则返回-1;如果值为正数,则返回1。

语法:sign(expression)

参数:

● expression:数值表达式。

查询:

结果将返回-17和0.1的正负符号。

结果:

(6)rand():rand()返回[0, 1)之间的一个随机数,返回的数值在整个区间遵循均匀分布。

语法:rand()

参数:无

查询:

结果将返回一个随机数。

结果:

2.对数函数

(1)log():log()返回表达式的自然对数。

语法:log(expression)

参数:

● expression:数值表达式。

查询:

结果将返回27的自然对数的值。

结果:

(2)log10():log10()返回表达式的常用对数(以10为底)。

语法:log10(expression)

参数:

● expression:数值表达式。

查询:

结果将返回27的常用对数。

结果:

(3)exp():exp()返回e^n,这里e是自然对数的底,n是表达式的实参值。

语法:e(expression)

参数:

● expression:数值表达式。

查询:

结果将返回e的平方值。

结果:

(4)e():e()返回自然对数的底,即e。

语法:e()

参数:无

查询:

结果将返回自然对数的底e的值。

结果:

(5)sqrt():sqrt()返回数值的平方根。

语法:sqrt(expression)

参数:

● expression:数值表达式。

查询:

结果将返回256的平方根,即16。

结果:

3.三角函数

除非特别指明,所有的三角函数都是针对弧度值进行计算的。

(1)sin():sin()返回表达式的正弦函数值。

语法:sin(expression)

参数:

● expression:一个表示角的弧度的数值表达式。

查询:

结果将返回角弧度为0.5的正弦值。

结果:

(2)cos():cos()返回表达式的余弦函数值。

语法:cos(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的余弦值。

结果:

(3)tan():tan()返回表达式的正切值。

语法:tan(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的正切值。

结果:

(4)cot():cot()返回表达式的余切值。

语法:cot(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的余切值。

结果:

(5)asin():asin()返回表达式的反正弦值。

语法:asin(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的反正弦值。

结果:

(6)acos():acos()返回表达式的反余弦值。

语法:acos(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的反余弦值。

结果:

(7)atan():atan()返回表达式的反正切值。

语法:atan(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回角弧度为0.5的反正切值。

结果:

(8)atan2():atan2()返回方位角,也可以理解为计算复数x+yi的幅角。

语法:atan2(expression1, expression2)

参数:

● expression1:表示复数x部分的数值表达式。

● expression2:表示复数y部分的数值表达式。

查询:

结果将返回复数为0.5+0.6i的方位角。

结果:

(9)pi():pi()返回常数pi的数值。

语法:pi()

参数:无

查询:

结果将返回常数Π的值。

结果:

(10)degrees():degrees()将弧度转为度。

语法:degrees(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回接近于Π的度数。

结果:

(11)radians():radians()将度转为弧度。

语法:radians(expression)

参数:

● expression:一个表示角度数的数值表达式。

查询:

结果将返回180°的弧度值(Π)。

结果:

(12)haversin():haversin()返回表达式的半正矢值。

语法:haversin(expression)

参数:

● expression:一个表示角弧度的数值表达式。

查询:

结果将返回弧度为0.5的半正矢值。

结果:

(13)使用haversin函数计算球面距离:haversin()函数可用于计算球面上两点(以经纬度的方式给出)之间的距离。下面示例计算了德国柏林(lat 52.5,lon 13.4)和美国加州圣马特奥市(lat 375,lon -122.3)两点之间的球面距离(以km计),计算时采用的是地球的平均半径6371km。

查询:

结果将返回柏林和圣马特奥之间的估算距离。

结果: