- カテゴリ:
TO_DOUBLE¶
式を倍精度浮動小数点数に変換します。
NULL 入力の場合、結果は NULLです。
- こちらもご参照ください。
構文¶
TO_DOUBLE( <expr> [, '<format>' ] )
引数¶
expr
数値、文字、またはバリアント型の式です。format
式が文字列に評価される場合、関数はオプションのフォーマットモデルを受け入れます。形式モデルは SQL 形式モデル で説明されています。形式モデルは、出力値の形式ではなく、入力文字列の形式を指定します。
使用上の注意¶
固定小数点数は浮動小数点に変換されます。変換が失敗することはありませんが、精度が失われる可能性があります。
文字列は10進整数または小数として変換され、科学表記法と特別な値(nan、 inf、 infinity)が受け入れられます。
VARIANT 入力の場合:
バリアントに固定小数点値が含まれる場合、数値変換が実行されます。
バリアントに浮動小数点値が含まれる場合、値は変更されずに保持されます。
バリアントに文字列が含まれている場合、文字列変換が実行されます。
バリアントにブール値が含まれる場合、結果は0または1(対応するfalseおよびtrue)になります。
バリアントに JSON null 値が含まれていると、出力は NULLになります。
小数の2進数への変換および逆変換は正確ではありません。つまり、10進表現から変換された浮動小数点数を出力すると、わずかに異なる数値が生成される場合があります)。小数の正確な表現が必要な場合は、固定小数点数を使用します。
例¶
異なるデータ型の列を持つテーブルを作成した後、このスクリプトはそれらの各列で TO_DOUBLE
を呼び出します。
CREATE TABLE double_demo (d DECIMAL(7, 2), v VARCHAR, o VARIANT); INSERT INTO double_demo (d, v, o) SELECT 1.1, '2.2', TO_VARIANT(3.14); SELECT TO_DOUBLE(d), TO_DOUBLE(v), TO_DOUBLE(o) FROM double_demo;出力:
+--------------+--------------+--------------+ | TO_DOUBLE(D) | TO_DOUBLE(V) | TO_DOUBLE(O) | |--------------+--------------+--------------| | 1.1 | 2.2 | 3.14 | +--------------+--------------+--------------+