DOUBLE_PRECISION 或 DOUBLE 标量函数
DOUBLE_PRECISION 和 DOUBLE 函数将返回数字的双精度浮点表示法或数字的字符串表示法。
数字到双精度
字符串到双精度
该模式是 SYSIBM。
- 数字到双精度
- numeric-expression
- 返回任何内置数字数据类型的值的表达式。
结果与将自变量分配给双精度浮点列或变量时出现的数字相同。 如果自变量的数字值不在双精度浮点范围内,那么将返回错误 (SQLSTATE 22003)。
- 返回任何内置数字数据类型的值的表达式。
- 字符串到双精度
- string-expression
- 返回表示数字的字符串(包括 FOR BIT DATA)的表达式。 此表达式的数据类型不能是 CLOB , BLOB 或 DBCLOB (SQLSTATE 42884)。
结果是与语句
CAST(string-expression AS DOUBLE PRECISION)结果相同的数字。 消除前导空格和尾部空格,结果字符串必须遵循用于形成有效数字常量 (SQLSTATE 22018) 的规则。 如果自变量的数字值不在双精度浮点范围内,那么将返回错误 (SQLSTATE 22003)。
- 返回表示数字的字符串(包括 FOR BIT DATA)的表达式。 此表达式的数据类型不能是 CLOB , BLOB 或 DBCLOB (SQLSTATE 42884)。
该函数的结果是双精度浮点数。 如果自变量可以为空,那么结果可以为空;如果自变量为空,那么结果为空值。
注意
- 应该使用 CAST 规范来提高应用程序的可移植性。
- FLOAT 是 DOUBLE_PRECISION 和 DOUBLE 的同义词。
- SYSFUN 版本的 DOUBLE (string_expression) 继续可用。
示例
使用 EMPLOYEE 表,查找佣金不为零的员工的工资与佣金的比率。 涉及的列(SALARY 和 COMM)具有 DECIMAL 数据类型。 为了消除超出范围结果的可能性,将 DOUBLE 应用于 SALARY,以便采用浮点执行除法:
SELECT EMPNO, DOUBLE(SALARY)/COMM
FROM EMPLOYEE
WHERE COMM > 0