ACOS

更新时间:
复制 MD 格式

Returns the arccosine of a number as a value in radians in the range [0, pi].

Syntax

double|decimal acos(<number>)

Parameters

ParameterRequiredTypeDescription
numberYesDOUBLE or DECIMALThe input value. Must be in the range [-1, 1]. STRING and BIGINT values are implicitly converted to DOUBLE before calculation.

Return value

The return type matches the input type, except that STRING and BIGINT inputs return DOUBLE.

Input typeReturn typeCondition
DOUBLEDOUBLEInput is in [-1, 1]
DECIMALDECIMALInput is in [-1, 1]
STRINGDOUBLEInput is in [-1, 1]
BIGINTDOUBLEInput is in [-1, 1]
AnynullInput is outside [-1, 1]
AnynullInput is null

Sample data

The examples in this topic use the mf_math_fun_t table. To create and populate the table, run the following statements:

create table if not exists mf_math_fun_t(
     int_data     int,
     bigint_data  bigint,
     double_data  double,
     decimal_data decimal,
     float_data   float,
     string_data  string
    );
insert into mf_math_fun_t values
(null, -10, 0.525, 0.525BD, cast(0.525 as float), '10'),
(-20, null, -0.1, -0.1BD, cast(-0.1 as float), '-10'),
(0, -1, null, 20.45BD, cast(-1 as float), '30'),
(-40, 4, 0.89, null, cast(0.89 as float), '-30'),
(5, -50, -1, -1BD, null, '50'),
(-60, 6, 1.5, 1.5BD, cast(1.5 as float), '-50'),
(-1, -70, -7.5, -7.5BD, cast(-7.5 as float),null ),
(-80, 1, -10.2, -10.2BD, cast(-10.2 as float), '-1' ),
(9, -90, 2.58, 2.58BD, cast(2.58 as float), '0'),
(-100, 10, -5.8, -5.8BD, cast(-5.8 as float), '-90');

Query the table to confirm the data:

select * from mf_math_fun_t;

Result:

+------------+-------------+-------------+--------------+------------+-------------+
| int_data   | bigint_data | double_data | decimal_data | float_data | string_data |
+------------+-------------+-------------+--------------+------------+-------------+
| NULL       | -10         | 0.525       | 0.525        | 0.525      | 10          |
| -20        | NULL        | -0.1        | -0.1         | -0.1       | -10         |
| 0          | -1          | NULL        | 20.45        | -1.0       | 30          |
| -40        | 4           | 0.89        | NULL         | 0.89       | -30         |
| 5          | -50         | -1.0        | -1           | NULL       | 50          |
| -60        | 6           | 1.5         | 1.5          | 1.5        | -50         |
| -1         | -70         | -7.5        | -7.5         | -7.5       | NULL        |
| -80        | 1           | -10.2       | -10.2        | -10.2      | -1          |
| 9          | -90         | 2.58        | 2.58         | 2.58       | 0           |
| -100       | 10          | -5.8        | -5.8         | -5.8       | -90         |
+------------+-------------+-------------+--------------+------------+-------------+

Examples

Static values

-- Returns 0.5155940062460905
select acos("0.87");
-- Returns 1.5707963267948966
select acos(0);
-- Returns null (input is null)
select acos(null);
-- Returns null (input is out of range)
select acos(2);

Table data

Calculate the arccosine of values in the mf_math_fun_t table:

select acos(bigint_data) as bigint_new, acos(double_data) as double_new, acos(decimal_data) as decimal_new, acos(string_data) as string_new from mf_math_fun_t;

Result:

+-------------------+--------------------+--------------------+---------------------+
| bigint_new        | double_new         | decimal_new        | string_new          |
+-------------------+--------------------+--------------------+---------------------+
| NULL              | 1.0180812136981134 | 1.0180812136981134 | NULL                |
| NULL              | 1.6709637479564565 | 1.6709637479564565 | NULL                |
| 3.141592653589793 | NULL               | NULL               | NULL                |
| NULL              | 0.4734511572720662 | NULL               | NULL                |
| NULL              | 3.141592653589793  | 3.141592653589793  | NULL                |
| NULL              | NULL               | NULL               | NULL                |
| NULL              | NULL               | NULL               | NULL                |
| 0.0               | NULL               | NULL               | 3.141592653589793   |
| NULL              | NULL               | NULL               | 1.5707963267948966  |
| NULL              | NULL               | NULL               | NULL                |
+-------------------+--------------------+--------------------+---------------------+

NULL in bigint_new, double_new, decimal_new, and string_new indicates that the input value was outside the range [-1, 1] or was null.

Related functions

ACOS is a mathematical function. For more information about related functions, see Mathematical functions.