構文
用途
TO_BINARY_DOUBLE
は、倍精度の浮動小数点数を戻します。
expr
には、文字列か、またはNUMBER
、BINARY_FLOAT
またはBINARY_DOUBLE
型の数値を指定できます。expr
がBINARY_DOUBLE
の場合、このファンクションはexpr
を戻します。
オプションの'fmt
'引数および'nlsparam
'引数はexpr
が文字列の場合にのみ有効です。これらの引数は、TO_CHAR
(数値)ファンクションの場合と同じ用途に使用されます。
文字列'INF
'(大/小文字は区別されない)は、正の無限大に変換されます。
文字列'-INF
'(大/小文字は区別されない)は、負の無限大に変換されます。
文字列'NaN
'(大/小文字は区別されない)は、NaN
(非数値)に変換されます。
expr
文字列には、浮動小数点数の書式要素(
F
、f
、Dまたはd
)は使用できません。
文字列またはNUMBER
からBINARY_DOUBLE
への変換は、正確に行われない場合があります。これは、NUMBER
および文字列型では10進精度、BINARY_DOUBLE
では2進精度を使用して数値を表現するためです。
BINARY_FLOAT
からBINARY_DOUBLE
への変換は正確に行われます。
例
次の例では、それぞれ異なる数値データ型の3つの列を持つ次の表を使用します。
CREATE TABLE float_point_demo (dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT); INSERT INTO float_point_demo VALUES (1234.56,1234.56,1234.56); SELECT * FROM float_point_demo; DEC_NUM BIN_DOUBLE BIN_FLOAT ---------- ---------- ---------- 1234.56 1.235E+003 1.235E+003
次の例では、NUMBER
データ型の値をBINARY_DOUBLE
データ型の値に変換します。
SELECT dec_num, TO_BINARY_DOUBLE(dec_num) FROM float_point_demo; DEC_NUM TO_BINARY_DOUBLE(DEC_NUM) ---------- ------------------------- 1234.56 1.235E+003
次の例では、dec_num
列およびbin_double
列から抽出されたダンプ情報を比較します。
SELECT DUMP(dec_num) "Decimal", DUMP(bin_double) "Double" FROM float_point_demo; Decimal Double --------------------------- --------------------------------------------- Typ=2 Len=4: 194,13,35,57 Typ=101 Len=8: 192,147,74,61,112,163,215,10