数值函数:pow()、sqrt()、exp()、ln()、log()、log2()、log10()

566 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10 天,点击查看活动详情

一、前言

大家好,今天文章的内容是:

  • pow()
  • sqrt()
  • exp()
  • ln()
  • log()
  • log2()
  • log10()

二、内容

指数 与 对数

指数是幂运算 ana^na0a≠0)中的一个参数,aa为底数,nn为指数,指数位于底数的右上角,幂运算表示指数个底数相乘。

在数学中,对数是对求幂的逆运算。

如果 aaxx 次方等于NN,即ax=Na^x = Na>0a>0,且a1a≠1),那么数 xx 叫做 以aa为底NN 的对数。

自然常数是数学中一个常数,符号为 ee,是一个无限不循环小数,且为超越数,其值约为2.7182818284590452.718281828459045,有时称它为欧拉数

pow

  • pow(x, n):计算 xxnn 次幂。效果同 power(x, n)

举例:

mysql> select pow(3, 3);
+-----------+
| pow(3, 3) |
+-----------+
|        27 |
+-----------+
1 row in set (0.00 sec)

mysql> select pow(2, 10);
+------------+
| pow(2, 10) |
+------------+
|       1024 |
+------------+
1 row in set (0.00 sec)

mysql> select pow(2, -2);
+------------+
| pow(2, -2) |
+------------+
|       0.25 |
+------------+
1 row in set (0.00 sec)

sqrt

  • sqrt(x) :返回非负数 x 的平方根。

比如:

mysql> select sqrt(25);
+----------+
| sqrt(25) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

mysql> select sqrt(81);
+----------+
| sqrt(81) |
+----------+
|        9 |
+----------+
1 row in set (0.00 sec)

exp

  • exp(x):返回自然对数 eexx 次方,即 exe^x

举例:

mysql> select exp(1);
+-------------------+
| exp(1)            |
+-------------------+
| 2.718281828459045 |
+-------------------+
1 row in set (0.00 sec)

mysql> select exp(2);
+------------------+
| exp(2)           |
+------------------+
| 7.38905609893065 |
+------------------+
1 row in set (0.00 sec)

备注:

  • 该函数的逆函数为 log()(如果传入一个参数的话)或者 ln()

比如 :

mysql> select log(exp(1));
+-------------+
| log(exp(1)) |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

mysql> select log(exp(2));
+-------------+
| log(exp(2)) |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)

mysql> select ln(1);
+-------+
| ln(1) |
+-------+
|     0 |
+-------+
1 row in set (0.00 sec)

ln

  • ln(x):返回参数 x 的自然对数,与 exp(x)是逆函数。

举例:

mysql> select ln(1);
+-------+
| ln(1) |
+-------+
|     0 |
+-------+
1 row in set (0.00 sec)

mysql> select ln(exp(10));
+-------------+
| ln(exp(10)) |
+-------------+
|          10 |
+-------------+
1 row in set (0.00 sec)

log

  • 函数有两种形式:
    • log(x):返回参数 x 的自然对数,与 exp(x)是逆函数
    • 举例:
      mysql> select log(1);
      +--------+
      | log(1) |
      +--------+
      |      0 |
      +--------+
      1 row in set (0.00 sec)
      
    • log(B, x):返回以参数 B 为底的对数值。
    • 举例:
      mysql> select log(2, 1024);
      +--------------+
      | log(2, 1024) |
      +--------------+
      |           10 |
      +--------------+
      1 row in set (0.00 sec)
      
      mysql> select log(10, 100);
      +--------------+
      | log(10, 100) |
      +--------------+
      |            2 |
      +--------------+
      1 row in set (0.00 sec)
      

log2

  • log2(x):返回 x 的以 22 为底的对数。
  • 如果 x 小于或等于 00,则函数返回 NULL,并带有警告
  • 如果 xNULLL,则返回 NULL

举例:

mysql> select log2(1024);
+------------+
| log2(1024) |
+------------+
|         10 |
+------------+
1 row in set (0.00 sec)

mysql> select log2(0);
+---------+
| log2(0) |
+---------+
|    NULL |
+---------+
1 row in set, 1 warning (0.00 sec)

备注:

该函数等效于表达式: log(x) / log(2)

log10

  • log10(x):返回 x 的以 1010 为底的对数。
  • 如果 x 小于或等于 00,则函数返回 NULL,并带有警告
  • 如果 xNULLL,则返回 NULL
mysql> select log10(1000);
+-------------+
| log10(1000) |
+-------------+
|           3 |
+-------------+
1 row in set (0.00 sec)

mysql> select log10(0);
+----------+
| log10(0) |
+----------+
|     NULL |
+----------+
1 row in set, 1 warning (0.00 sec)

备注:

该函数等效于: log(10, x)


三、后话

好了,今天的文章内容就到这里,感谢观看。