안녕하세요
작성된 프로시저를 확인해 보다가 궁금점이 있어서 문의드립니다.
DECLARE
RSLT1 varchar2(100);
BEGIN
RSLT1 := '.4' ;
RSLT1 := TO_NUMBER(TO_NUMBER(RSLT1) + TO_NUMBER('1.04')) ;
DBMS_OUTPUT.Put_Line('a'||RSLT1);
END;
RSLT1 값을 확인해보면 1.44가 나옵니다.
RSLT1 의값을 0.4로 바궈도
1.44가 나오는데 제가 원하는값은
.4 + 1.04 이든 0.4+1.04 가 되든 1.8이라는 결과값을 얻고싶은데 어떻게 해야될까요?
문자형 -> 숫자형으로 변환 시 소수점 위 0 이 날아가버리는 문제 때문에 그러시는 것 같네요.
DECLARE RSLT1 VARCHAR2(100); RSLT2 VARCHAR2(100); RSLT3 NUMBER; BEGIN RSLT1 := '.4' ; RSLT1 := RTRIM(TO_CHAR(TO_NUMBER(RSLT1) + TO_NUMBER('1.04') - 1,'fm999,999,990.999'),'.') ; RSLT2 := RTRIM(TO_CHAR(TO_NUMBER(RSLT1) + TO_NUMBER('1.4') -1,'fm999,999,990.999'),'.') ; DBMS_OUTPUT.PUT_LINE('a'||RSLT1); DBMS_OUTPUT.PUT_LINE('b'||RSLT2); END;