カテゴリ:

変換関数

TO_DOUBLE

式を倍精度浮動小数点数に変換します。

NULL 入力の場合、結果は NULLです。

こちらもご参照ください。

TRY_TO_DOUBLE

構文

TO_DOUBLE( <expr> [, '<format>' ] )
Copy

引数

  • expr 数値、文字、またはバリアント型の式です。

  • format 式が文字列に評価される場合、関数はオプションのフォーマットモデルを受け入れます。形式モデルは SQL 形式モデル で説明されています。形式モデルは、出力値の形式ではなく、入力文字列の形式を指定します。

使用上の注意

  • 固定小数点数は浮動小数点に変換されます。変換が失敗することはありませんが、精度が失われる可能性があります。

  • 文字列は10進整数または小数として変換され、科学表記法と特別な値(naninfinfinity)が受け入れられます。

  • 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;
Copy

出力:

+--------------+--------------+--------------+
| TO_DOUBLE(D) | TO_DOUBLE(V) | TO_DOUBLE(O) |
|--------------+--------------+--------------|
|          1.1 |          2.2 |         3.14 |
+--------------+--------------+--------------+
Copy