카테고리:

변환 함수

TO_DOUBLE

식을 배정밀도 부동 소수점 숫자로 변환합니다.

NULL 입력의 경우, 결과는 NULL입니다.

참고 항목:

TRY_TO_DOUBLE

구문

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

인자

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

출력:

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