본문 바로가기

[오라클 레퍼런스 함수] TO_BINARY_FLOAT - single-precision 부동 소수점 숫자로 변환

by ㅇㅍㅍ 2023. 8. 28.
[오라클 레퍼런스 함수] TO_BINARY_FLOAT - single-precision 부동 소수점 숫자로 변환
728x90

 

TO_BINARY_FLOAT

 

구문

TO_BINARY_FLOAT(expr [ DEFAULT return_value ON CONVERSION ERROR ]
  [, fmt [, 'nlsparam' ] ])

 

목적

TO_BINARY_FLOAT은 expr을 단정밀도(single-precision) 부동 소수점 숫자로 변환합니다.

  • exprCHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 유형의 문자열, NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값 또는 null을 평가하는 모든 식일 수 있습니다. exprBINARY_FLOAT이면 함수는 expr을 그대로 반환합니다. expr이 null로 평가되면 함수는 null을 반환합니다. 그렇지 않은 경우 함수는 exprBINARY_FLOAT 값으로 변환합니다.

  • 선택적인 DEFAULT return_value ON CONVERSION ERROR 절을 사용하여 exprBINARY_FLOAT로 변환하는 동안 오류가 발생한 경우 이 함수가 반환하는 값을 지정할 수 있습니다. 이 절은 expr을 평가하는 동안 오류가 발생한 경우에는 영향을 미치지 않습니다. return_value는 표현식 또는 바인드 변수일 수 있으며 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 유형의 문자열, NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값 또는 null로 평가되어야 합니다. 함수는 return_valueexprBINARY_FLOAT로 변환하는 방식과 동일하게 BINARY_FLOAT로 변환합니다. return_valueBINARY_FLOAT로 변환할 수 없는 경우 함수는 오류를 반환합니다.

  • 선택적인 'fmt' 및 'nlsparam' 인수는 TO_NUMBER 함수와 동일한 목적으로 사용됩니다. 이러한 인수를 지정하면 exprreturn_value(지정된 경우)가 각각 문자열 또는 null이어야 합니다. 둘 중 하나가 문자열인 경우 함수는 문자열을 BINARY_FLOAT 값으로 변환하기 위해 fmtnlsparam 인수를 사용합니다.

 

expr 또는 return_value가 다음과 같은 문자열로 평가되면 함수는 다음과 같이 변환합니다.

  • 대소문자를 구분하지 않는 문자열 'INF'는 양의 무한대로 변환됩니다.
  • 대소문자를 구분하지 않는 문자열 '-INF'는 음의 무한대로 변환됩니다.
  • 대소문자를 구분하지 않는 문자열 'NaN'은 NaN(숫자가 아님)으로 변환됩니다.

문자열 expr에 부동 소수점 숫자 형식 요소(F, f, D 또는 d)를 사용할 수 없습니다.

문자열 또는 NUMBER에서 BINARY_FLOAT로의 변환은 숫자 및 문자 유형이 숫자 값을 나타내기 위해 십진 정밀도를 사용하고 BINARY_FLOAT가 이진 정밀도를 사용하기 때문에 비정확할 수 있습니다.

BINARY_DOUBLE에서 BINARY_FLOAT로의 변환은 BINARY_DOUBLE 값이 BINARY_FLOAT에서 지원하는 이진 정밀도보다 더 많은 비트의 정밀도를 사용하는 경우 비정확합니다.

 

참고:

TO_CHAR (number) 및 "Floating-Point Numbers"

 

예제

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

 


출처: 오라클 레퍼런스

원문 링크: Oracle TO_BINARY_FLOAT 함수 문서

 

반응형

댓글