Oracle TO_BINARY_DOUBLE() 函数使用指南
Oracle TO_BINARY_DOUBLE() 是一个内置函数,它将给定的表达式转换为双精度浮点数。
Oracle TO_BINARY_DOUBLE() 语法
这里是 Oracle TO_BINARY_DOUBLE() 函数的语法:
TO_BINARY_DOUBLE(expr [ DEFAULT return_value ON CONVERSION ERROR ]
[, fmt [, 'nlsparam' ] ])
参数
expr-
必需的。 它可以是任何表达式,它计算为
CHAR、VARCHAR2、NCHAR或NVARCHAR2类型的字符字符串、NUMBER、BINARY_FLOAT或BINARY_DOUBLE类型的数值,或 null。 您不能在字符字符串expr中使用浮点数格式元素 (F、f、D或d)。 DEFAULT return_value ON CONVERSION ERROR-
可选的。它允许您指定在转换发生错误时返回的值。
return_value可以是表达式或绑定变量,并且必须计算为CHAR、VARCHAR2、NCHAR或NVARCHAR2类型的字符字符串、NUMBER、BINARY_FLOAT或BINARY_DOUBLE类型的数值或 null。该函数以与将expr转换为BINARY_DOUBLE相同的方式将return_value转换为BINARY_DOUBLE。如果无法将return_value转换为BINARY_DOUBLE,则该函数返回错误。 fmt-
可选的。格式化字符串。
'nlsparam'-
可选的。您可以使用这个
'NLS_DATE_LANGUAGE = language'形式设置此参数,其中language是语言名称。
返回值
Oracle TO_BINARY_DOUBLE() 函数返回一个双精度浮点数。
如果 expr 是 BINARY_DOUBLE,则该函数返回 expr。如果 expr 计算结果为 null,则该函数返回 null。否则,该函数将 expr 转换为 BINARY_DOUBLE 值。
如果 expr 或 return_value 计算为以下字符字符串,则该函数将其转换如下:
- 不区分大小写的字符串 “
INF” 转换为正无穷。 - 不区分大小写的字符串 “
-INF” 转换为负无穷。 - 不区分大小写的字符串 “
NaN” 转换为NaN(不是数字)。
注意:
- 从字符字符串或
NUMBER到BINARY_DOUBLE的转换可能不精确,因为NUMBER和字符类型使用十进制精度表示数字值,而BINARY_DOUBLE使用二进制精度。 - 从
BINARY_FLOAT到BINARY_DOUBLE的转换是精确的。
Oracle TO_BINARY_DOUBLE() 示例
这里有几个展示了 Oracle TO_BINARY_DOUBLE() 函数用法的示例。
基本用法
下面的语句展示了 Oracle TO_BINARY_DOUBLE() 函数的基本用法:
SELECT
TO_BINARY_DOUBLE(1)
FROM dual;
输出:
TO_BINARY_DOUBLE(1)
______________________
1.0INF 和 -INF
Oracle TO_BINARY_DOUBLE() 函数将不区分大小写的字符串 “INF” 和 “-INF” 分别转换为正无穷和负无穷。
SELECT
TO_BINARY_DOUBLE('INF') "INF",
TO_BINARY_DOUBLE('-INF') "-INF"
FROM dual;
输出:
INF -INF
___________ ____________
Infinity -InfinityNaN
Oracle TO_BINARY_DOUBLE() 函数将不区分大小写的字符串 “NaN” 转换为 NaN(不是数字)。
SELECT
TO_BINARY_DOUBLE('NaN') "NaN",
TO_BINARY_DOUBLE('nan') "nan",
TO_BINARY_DOUBLE('NAN') "NAN"
FROM dual;
输出:
NaN nan NAN
______ ______ ______
NaN NaN NaNNULL 参数
如果任意一个参数为 NULL, TO_BINARY_DOUBLE() 将返回 NULL。
SET NULL 'NULL';
SELECT
TO_BINARY_DOUBLE(NULL)
FROM dual;
输出:
TO_BINARY_DOUBLE(NULL)
_________________________
NULL在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。
结论
Oracle TO_BINARY_DOUBLE() 是一个内置函数,它将给定的表达式转换为双精度浮点数。