[comment]: # attributes: notoc

[comment]: # (terms: abs, acos, asin, atan, atan2, avg, cbrt, ceil, cos, cosh, cot, degrees, e, exp, expm1, floor, log, log10, max, min, mod, pi, power, radians, rand, round, signum, sin, sinh, sqrt, sum, tan, truncate )

[comment]: # ({13d85cd4-ef4bef6c})
# 6 数学函数

此处列出的所有函数均支持用于：

-   [触发器表达式](/manual/config/triggers/expression)
-   [计算型监控项公式](/manual/config/items/itemtypes/calculated)
-   [表达式宏](/manual/config/macros/expression_macros)

除非另有说明，否则数学函数支持 float 和 integer 值类型。

以下仅列出函数，不包含附加信息。单击函数可查看完整详情。

|Function|Description|
|--|--------|
|[abs](#abs)|值的绝对值。|
|[acos](#acos)|值的反余弦，以弧度表示角度。|
|[asin](#asin)|值的反正弦，以弧度表示角度。|
|[atan](#atan)|值的反正切，以弧度表示角度。|
|[atan2](#atan2)|纵坐标（值）和横坐标所指定角度的反正切，以弧度表示。|
|[avg](#avg)|被引用监控项值的平均值。|
|[cbrt](#cbrt)|值的立方根。|
|[ceil](#ceil)|将值向上舍入到最接近的更大或相等整数。|
|[cos](#cos)|值的余弦，其中该值是以弧度表示的角度。|
|[cosh](#cosh)|值的双曲余弦。|
|[cot](#cot)|值的余切，其中该值是以弧度表示的角度。|
|[degrees](#degrees)|将值从弧度转换为度。|
|[e](#e)|欧拉数（2.718281828459045）。|
|[exp](#exp)|欧拉数的值次幂。|
|[expm1](#expm1)|欧拉数的值次幂减 1。|
|[floor](#floor)|将值向下舍入到最接近的更小或相等整数。|
|[log](#log)|自然对数。|
|[log10](#log10)|常用对数。|
|[max](#max)|被引用监控项值中的最大值。|
|[min](#min)|被引用监控项值中的最小值。|
|[mod](#mod)|除法余数。|
|[pi](#pi)|圆周率常量（3.14159265358979）。|
|[power](#power)|值的幂。|
|[radians](#radians)|将值从度转换为弧度。|
|[rand](#rand)|返回一个随机整数值。|
|[round](#round)|将值舍入到指定小数位。|
|[signum](#signum)|如果值为负数则返回“-1”，如果值为零则返回“0”，如果值为正数则返回“1”。|
|[sin](#sin)|值的正弦，其中该值是以弧度表示的角度。|
|[sinh](#sinh)|值的双曲正弦，其中该值是以弧度表示的角度。|
|[sqrt](#sqrt)|值的平方根。|
|[sum](#sum)|被引用监控项值的总和。| 
|[tan](#tan)|值的正切。|
|[truncate](#truncate)|将值截断到指定小数位。|

[comment]: # ({/13d85cd4-ef4bef6c})

[comment]: # ({e635e2a6-f932d69d})
### 函数详情

有关函数参数的一些一般说明：

-   函数参数以逗号分隔
-   表达式可作为参数
-   可选的函数参数（或参数部分）以
    `<` `>` 表示

[comment]: # ({/e635e2a6-f932d69d})

[comment]: # ({39973c9a-89cbc486})
##### abs(value) {#abs}

一个值的绝对值（从 0 开始计算）。

参数：

-   **value** - 要检查的值

例如，'3' 或 '-3' 的绝对值都将是 '3'。

示例：

    abs(last(/host/key))>10

[comment]: # ({/39973c9a-89cbc486})

[comment]: # ({754d73c7-f40a2e61})
##### acos(value) {#acos}

一个值的反余弦，以弧度表示的角度。

参数：

-   **value** - 要检查的值

该值必须介于 -1 和 1 之间。例如，值“0.5”的反余弦将为“2.0943951”。

示例：

    acos(last(/host/key))

[comment]: # ({/754d73c7-f40a2e61})

[comment]: # ({f32d79d9-b44dbca5})
##### asin(value) {#asin}

一个值的反正弦，以弧度表示的角度。

参数：

-   **value** - 要检查的值

该值必须介于 -1 和 1 之间。例如，值“0.5”的反正弦将为“-0.523598776”。

示例：

    asin(last(/host/key))

[comment]: # ({/f32d79d9-b44dbca5})

[comment]: # ({debc5495-08e0843c})
##### atan(value) {#atan}

一个值的反正切，以弧度表示的角度。

参数：

-   **value** - 要检查的值

例如，值“1”的反正切将为“0.785398163”。

示例：

    atan(last(/host/key))

[comment]: # ({/debc5495-08e0843c})

[comment]: # ({1c279561-6df7b343})
##### atan2(value,abscissa) {#atan2}

纵坐标（value）和横坐标坐标指定的反正切角，以弧度表示。

参数：

-   **value** - 要检查的值；
-   **abscissa** - 横坐标值。

例如，值“1”的纵坐标和横坐标坐标的反正切将为“2.21429744”。

示例：

    atan2(last(/host/key),2)

[comment]: # ({/1c279561-6df7b343})

[comment]: # ({94ba0bc0-6d42ceda})
##### avg(<value1>,<value2>,...) {#avg}

被引用监控项值的平均值。

参数：

-   **valueX** - 由另一个处理监控项历史记录的函数返回的值。

示例：

    avg(avg(/host/key,1h),avg(/host2/key2,1h))

[comment]: # ({/94ba0bc0-6d42ceda})

[comment]: # ({ef0cb9ef-65742fe9})
##### cbrt(value) {#cbrt}

一个值的立方根。

参数：

-   **value** - 要检查的值

例如，'64' 的立方根是 '4'，'63' 的立方根是 '3.97905721'。

示例：

    cbrt(last(/host/key))

[comment]: # ({/ef0cb9ef-65742fe9})

[comment]: # ({696b523c-4290a457})
##### ceil(value) {#ceil}

将该值向上舍入到最接近且大于或等于它的整数。

参数：

-   **value** - 要检查的值

例如，'2.4' 将向上舍入为 '3'。另请参见 [floor()](#floor)。

示例：

    ceil(last(/host/key))

[comment]: # ({/696b523c-4290a457})

[comment]: # ({dee428c3-b07f5dfa})
##### cos(value) {#cos}

一个值的余弦，其中该值是以弧度表示的角度。

参数：

-   **value** - 要检查的值

例如，值“1”的余弦为“0.54030230586”。

示例：

    cos(last(/host/key))

[comment]: # ({/dee428c3-b07f5dfa})

[comment]: # ({a9e4704e-4df693f6})
##### cosh(value) {#cosh}

一个值的双曲余弦。
返回值为实数，而不是科学计数法表示。

参数：

-   **value** - 要检查的值

例如，值“1”的双曲余弦将为“1.54308063482”。

示例：

    cosh(last(/host/key))

[comment]: # ({/a9e4704e-4df693f6})

[comment]: # ({b169abdb-7b0480bb})
##### cot(value) {#cot}

一个值的余切，其中该值是以弧度表示的角度。

参数：

-   **value** - 要检查的值

例如，值“1”的余切将为“0.54030230586”。

示例：

    cot(last(/host/key))

[comment]: # ({/b169abdb-7b0480bb})

[comment]: # ({49d843a0-552d8ac9})
##### degrees(value) {#degrees}

将一个值从弧度转换为度。

参数：

-   **value** - 要检查的值

例如，值“1”转换为度后将为“57.2957795”。

示例：

    degrees(last(/host/key))

[comment]: # ({/49d843a0-552d8ac9})

[comment]: # ({7078d3f3-790837bf})
##### e {#e}

欧拉数（2.718281828459045）。

示例：

    e()

[comment]: # ({/7078d3f3-790837bf})

[comment]: # ({329513b5-5f0104cf})
##### exp(value) {#exp}

欧拉数的 value 次幂。

参数：

-   **value** - 要检查的值

例如，value 为“2”时，欧拉数的 2 次幂为“7.38905609893065”。

示例：

    exp(last(/host/key))

[comment]: # ({/329513b5-5f0104cf})

[comment]: # ({ae4a884c-fa7bce72})
##### expm1(value) {#expm1}

欧拉数的 value 次幂减 1。

参数：

-   **value** - 要检查的值

例如，欧拉数的值 '2' 次幂减 1 的结果为 '6.38905609893065'。

示例：

    expm1(last(/host/key))

[comment]: # ({/ae4a884c-fa7bce72})

[comment]: # ({d6651028-367cea41})
##### floor(value) {#floor}

将该值向下舍入为最接近且小于或等于它的整数。

参数：

-   **value** - 要检查的值

例如，'2.6' 将向下舍入为 '2'。另请参见 [ceil()](#ceil)。

示例：

    floor(last(/host/key))

[comment]: # ({/d6651028-367cea41})

[comment]: # ({fb4ffc82-02960b00})
##### log(value) {#log}

自然对数。

参数：

-   **value** - 要检查的值

例如，值“2”的自然对数为“0.69314718055994529”。

示例：

    log(last(/host/key))

[comment]: # ({/fb4ffc82-02960b00})

[comment]: # ({e44235f6-9eb02241})
##### log10(value) {#log10}

十进制对数。

参数：

-   **value** - 要检查的值

例如，值“5”的十进制对数为“0.69897000433”。

示例：

    log10(last(/host/key))

[comment]: # ({/e44235f6-9eb02241})

[comment]: # ({3b20d32e-9b8efc17})
##### max(<value1>,<value2>,...) {#max}

引用的监控项值中的最大值。

参数：

-   **valueX** - 由另一个处理监控项历史记录的函数返回的值。

示例：

    max(avg(/host/key,1h),avg(/host2/key2,1h))

[comment]: # ({/3b20d32e-9b8efc17})

[comment]: # ({f8d47c9b-5e82e822})
##### min(<value1>,<value2>,...) {#min}

引用的监控项值中的最小值。

参数：

-   **valueX** - 由另一个处理监控项历史数据的函数返回的值。

示例：

    min(avg(/host/key,1h),avg(/host2/key2,1h))

[comment]: # ({/f8d47c9b-5e82e822})

[comment]: # ({0c1c211e-120dd48b})
##### mod(value,denominator) {#mod}

除法余数。

参数：

-   **value** - 要检查的值；
-   **denominator** - 除数。

例如，值“5”除以“2”的余数为“1”。

示例：

    mod(last(/host/key),2)

[comment]: # ({/0c1c211e-120dd48b})

[comment]: # ({5fae5f18-d8cd6290})
##### pi {#pi}

Pi 常量（3.14159265358979）。

示例：

    pi()

[comment]: # ({/5fae5f18-d8cd6290})

[comment]: # ({e5f39714-617a0fc5})
##### power(value,power value) {#power}

值的幂。

参数：

-   **value** - 要检查的值；
-   **power value** - 要使用的 N 次幂。

例如，值“2”的 3 次幂将是“8”。

示例：

    power(last(/host/key),3)

[comment]: # ({/e5f39714-617a0fc5})

[comment]: # ({2e3144c2-c94a9d57})
##### radians(value) {#radians}

将一个值从度转换为弧度。

参数：

-   **value** - 要检查的值

例如，值“1”转换为弧度后将为“0.0174532925”。

示例：

    radians(last(/host/key))

[comment]: # ({/2e3144c2-c94a9d57})

[comment]: # ({91941daf-16f1713f})
##### rand {#rand}

返回一个随机整数值。使用时间作为种子生成的伪随机数（对于数学用途已足够，但不适用于加密）。

示例：

    rand()

[comment]: # ({/91941daf-16f1713f})

[comment]: # ({d95689d5-e19fd7cb})
##### round(value,decimal places) {#round}

将该值四舍五入到指定的小数位数。

参数： 

-   **value** - 要检查的值；
-   **decimal places** - 指定用于四舍五入的小数位数（也可以为 0）。

例如，值“2.5482”四舍五入到 2 位小数后将变为“2.55”。

示例：

    round(last(/host/key),2)

[comment]: # ({/d95689d5-e19fd7cb})

[comment]: # ({12a89282-9668b2dc})
##### signum(value) {#signum}

如果值为负数，则返回 '-1'；如果值为零，则返回 '0'；如果值为正数，则返回 '1'。

参数：

-   **value** - 要检查的值。

示例：

    signum(last(/host/key))

[comment]: # ({/12a89282-9668b2dc})

[comment]: # ({8b506ba0-1c54e7c1})
##### sin(value) {#sin}

一个值的正弦，其中该值是以弧度表示的角度。

参数：

-   **value** - 要检查的值

例如，值“1”的正弦将为“0.8414709848”。

示例：

    sin(last(/host/key))

[comment]: # ({/8b506ba0-1c54e7c1})

[comment]: # ({8e4e9ad3-f2223e46})
##### sinh(value) {#sinh}

值的双曲正弦。

参数：

-   **value** - 要检查的值

例如，值“1”的双曲正弦为“1.17520119364”。

示例：

    sinh(last(/host/key))

[comment]: # ({/8e4e9ad3-f2223e46})

[comment]: # ({b3339bb1-a732b60e})
##### sqrt(value) {#sqrt}

值的平方根。<br>
如果值为负数，此函数将失败。

参数：

-   **value** - 要检查的值

例如，值“3.5”的平方根将为“1.87082869339”。

示例：

    sqrt(last(/host/key))

[comment]: # ({/b3339bb1-a732b60e})

[comment]: # ({f850beb9-0bbc007d})
##### sum(<value1>,<value2>,...) {#sum}

引用的监控项值之和。

参数：

-   **valueX** - 由另一个处理监控项历史数据的函数返回的值。

示例：

    sum(avg(/host/key,1h),avg(/host2/key2,1h))

[comment]: # ({/f850beb9-0bbc007d})

[comment]: # ({f06f407d-49e10a41})
##### tan(value) {#tan}

一个值的正切。

参数：

-   **value** - 要检查的值

例如，值“1”的正切将为“1.55740772465”。

示例：

    tan(last(/host/key))

[comment]: # ({/f06f407d-49e10a41})

[comment]: # ({4a3d082a-53de5a0f})
##### truncate(value,decimal places) {#truncate}

将该值截断到指定的小数位数。

参数：

-   **value** - 要检查的值；
-   **decimal places** - 指定用于截断的小数位数（也可以为 0）。

例如，值“2.5482”截断到 2 位小数后将变为“2.54”。

示例：

    truncate(last(/host/key),2)

[comment]: # ({/4a3d082a-53de5a0f})

[comment]: # ({f4a01c90-92620b8c})
请参见[所有支持的函数](/manual/config/triggers/expression#functions)。

[comment]: # ({/f4a01c90-92620b8c})
