类别:

转换函数

TO_DOUBLE

将表达式转换为双精度浮点数。

对于 NULL 输入,结果为 NULL。

另请参阅:

TRY_TO_DOUBLE

语法

TO_DOUBLE( <expr> [, '<format>' ] )
Copy

实参

  • expr 数字、字符或变体类型的表达式。

  • format 如果表达式的计算结果为字符串,则该函数接受可选的格式模型。有关格式模型的信息,请参阅 SQL 格式模型。格式模型指定输入字符串的格式,而不是输出值的格式。

使用说明

  • 定点数转换为浮点数;转换不会失败,但可能会降低精度。

  • 字符串转换为十进制整数或小数,接受科学记数法和特殊值(naninfinfinity)。

  • 对于 VARIANT 输入:

    • 如果变体包含定点值,则执行数字转换。

    • 如果变体包含浮点值,则值保持不变。

    • 如果变体包含字符串,则执行字符串转换。

    • 如果变体包含布尔值,则结果为 0 或 1(分别表示 False 和 True)。

    • 如果变体包含 JSON null 值,则输出将为 NULL。

请注意,十进制分数与二进制之间的相互转换并不精确(即,打印从十进制表示方法转换而来的浮点数可能会产生略有不同的数字)。如果需要精确表示十进制分数,请使用定点数。

示例

创建具有不同数据类型列的表后,此脚本对其中每个列调用 TO_DOUBLE

CREATE TABLE double_demo (d DECIMAL(7, 2), v VARCHAR, o VARIANT);
INSERT INTO double_demo (d, v, o) SELECT 1.1, '2.2', TO_VARIANT(3.14);
SELECT TO_DOUBLE(d), TO_DOUBLE(v), TO_DOUBLE(o) FROM double_demo;
Copy

输出:

+--------------+--------------+--------------+
| TO_DOUBLE(D) | TO_DOUBLE(V) | TO_DOUBLE(O) |
|--------------+--------------+--------------|
|          1.1 |          2.2 |         3.14 |
+--------------+--------------+--------------+
Copy
语言: 中文