TO_BINARY_FLOAT
Syntax
Purpose
TO_BINARY_FLOAT
converts expr
to a single-precision floating-point number.
-
expr
can be any expression that evaluates to a character string of typeCHAR
,VARCHAR2
,NCHAR
, orNVARCHAR2
, a numeric value of typeNUMBER
,BINARY_FLOAT
, orBINARY_DOUBLE
, or null. Ifexpr
isBINARY_FLOAT
, then the function returnsexpr
. Ifexpr
evaluates to null, then the function returns null. Otherwise, the function convertsexpr
to aBINARY_FLOAT
value. -
The optional
DEFAULT
return_value
ON
CONVERSION
ERROR
clause allows you to specify the value returned by this function if an error occurs while convertingexpr
toBINARY_FLOAT
. This clause has no effect if an error occurs while evaluatingexpr
. Thereturn_value
can be an expression or a bind variable, and must evaluate to a character string of typeCHAR
,VARCHAR2
,NCHAR
, orNVARCHAR2
, a numeric value of typeNUMBER
,BINARY_FLOAT
, orBINARY_DOUBLE
, or null. The function convertsreturn_value
toBINARY_FLOAT
in the same way it convertsexpr
toBINARY_FLOAT
. Ifreturn_value
cannot be converted toBINARY_FLOAT
, then the function returns an error. -
The optional '
fmt
' and 'nlsparam
' arguments serve the same purpose as for theTO_NUMBER
function. If you specify these arguments, thenexpr
andreturn_value
, if specified, must each be a character string or null. If either is a character string, then the function uses thefmt
andnlsparam
arguments to convert the character string to aBINARY_FLOAT
value.
If expr
or return_value
evaluate to the following character strings, then the function converts them as follows:
-
The case-insensitive string '
INF
' is converted to positive infinity. -
The case-insensitive string '-
INF
' is converted to negative identity. -
The case-insensitive string '
NaN
' is converted toNaN
(not a number).
You cannot use a floating-point number format element (F
, f
, D
, or d
) in a character string expr
.
Conversions from character strings or NUMBER
to BINARY_FLOAT
can be inexact, because the NUMBER
and character types use decimal precision to represent the numeric value and BINARY_FLOAT
uses binary precision.
Conversions from BINARY_DOUBLE
to BINARY_FLOAT
are inexact if the BINARY_DOUBLE
value uses more bits of precision than supported by the BINARY_FLOAT
.
See Also:
Examples
Using table float_point_demo
created for TO_BINARY_DOUBLE, the following example converts a value of data type NUMBER
to a value of data type BINARY_FLOAT
:
SELECT dec_num, TO_BINARY_FLOAT(dec_num) FROM float_point_demo; DEC_NUM TO_BINARY_FLOAT(DEC_NUM) ---------- ------------------------ 1234.56 1.235E+003
The following example returns the default value of 0
because the specified expression cannot be converted to a BINARY_FLOAT
value:
SELECT TO_BINARY_FLOAT('2oo' DEFAULT 0 ON CONVERSION ERROR) "Value" FROM DUAL; Value ---------- 0