TO_BINARY_FLOAT

構文

目的

TO_BINARY_FLOATは、exprを単精度浮動小数点数に変換します。

  • exprは、CHARVARCHAR2NCHARまたはNVARCHAR2の型の文字列、NUMBERBINARY_FLOATBINARY_DOUBLEまたはBOOLEANの型の数値、あるいはNULLと評価される任意の式にすることができます。exprBINARY_FLOATの場合、このファンクションはexprを戻します。exprがNULLと評価されると、ファンクションはNULLを戻します。それ以外の場合、exprBINARY_FLOAT値に変換されます。

  • オプションのDEFAULT return_value ON CONVERSION ERROR句により、exprからBINARY_FLOATへの変換中にエラーが発生した場合にこのファンクションで戻される値を指定できます。exprを評価するときにエラーが発生した場合、この句による影響はありません。return_valueは式またはバインド変数にすることができ、CHARVARCHAR2NCHARまたはNVARCHAR2の型の文字列、NUMBERBINARY_FLOATまたはBINARY_DOUBLEの型の数値、あるいはNULLと評価される必要があります。exprBINARY_FLOATに変換する場合と同じ方法で、return_valueBINARY_FLOATに変換されます。return_valueBINARY_FLOATに変換できない場合は、エラーが戻されます。

  • オプションの'fmt'引数および'nlsparam'引数の用途は、TO_NUMBERファンクションと同じです。これらの引数を指定した場合は、exprreturn_value (指定した場合)は、それぞれ文字列またはNULLにする必要があります。いずれかが文字列である場合は、fmt引数とnlsparam引数が使用されて、文字列がBINARY_FLOAT値に変換されます。

exprまたはreturn_valueが次の文字列に評価される場合、これらは次のように変換されます。

  • 文字列'INF'(大/小文字は区別されない)は、正の無限大に変換されます。

  • 文字列'-INF'(大/小文字は区別されない)は、負の無限大に変換されます。

  • 文字列'NaN'(大/小文字は区別されない)は、NaN(非数値)に変換されます。

expr文字列には、浮動小数点数の書式要素(FfDまたはd)は使用できません。

文字列またはNUMBERからBINARY_FLOATへの変換は、正確に行われない場合があります。これは、NUMBERおよび文字列型では10進精度、BINARY_FLOATでは2進精度を使用して数値を表現するためです。

BINARY_DOUBLE値に、BINARY_FLOATがサポートする数を超える精度ビットが使用されている場合、BINARY_DOUBLEからBINARY_FLOATへの変換は正確に行われません。

BOOLEAN型のexprを指定した場合、TRUEは1に変換され、FALSEは0に変換されます。

関連項目:

「TO_CHAR (数値)」および「浮動小数点数」を参照してください。

次の例では、「TO_BINARY_DOUBLE」で作成したfloat_point_demo表を使用して、NUMBERデータ型の値を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

次の例では、指定した式をBINARY_FLOAT値に変換できないため、デフォルト値の0が戻されます。

SELECT TO_BINARY_FLOAT('2oo' DEFAULT 0 ON CONVERSION ERROR) "Value"
  FROM DUAL;

     Value
----------
         0