이제 입문했는데 질문있습니다 0 2 1,585

by 엠컨 [2012.06.08 19:39:31]


이제 입문하여 기초적인것인데 질문할게요 ㅜㅜ

뇌를 자극하는 오라클 책으로 공부중에 실습부분인데요

CREATE TABLE num_temp2 (
    n1 NUMBER,
    n2 BINARY_FLOAT,
    n3 BINARY_DOUBLE );
을 한뒤

INSERT INTO num_temp2 (n1, n2, n3)
VALUES (0.123456789, 0.123456789, 0.123456789);
하여

출력
SELECT *
FROM num_temp2;

를 하면 책에는

3개 다 0.123456789 가 나온다고 되어 있는데 제가 실습해보면
n1은 .123456789
n2와 n3은 1.23E-001 이라고 나오네요 머가 문제 일까요?

책은 10g이고 저는 11g 프로그램을 사용하고 있습니다 버전때문에 그런거 같진 않은데

도움좀 주세요 ~
by 마농 [2012.06.08 21:09:28]

수치 표현방법이 다르다고 수치가 다르다고 할수는 없습니다.
너무 긴 숫자는 좀 줄여서 표현하려는 경향이 있죠.
사용하시는 툴(SqlPlus, Toad, Orange, 기타등등)에 따라 다르게 보이기도 하구요.
정확한 값을 확인해 보려면 문자로 바꿔 확인해 보세요.

다음은 SQLPLUS 에서 확인한 결과를 정리한 것입니다.
잘 보시면 n2의 값이 다른것을 확인하실 수 있습니다.

구분 n1 n2 n3
n .123456789 1.235E-001 1.235E-001
TO_CHAR(n) .123456789 1.23456791E-001 1.23456789E-001
TO_CHAR(n, '0.9999999999') 0.1234567890 0.1234567910 0.1234567890


by 엠컨 [2012.06.08 21:20:10]
답변 감사합니다~ ㅎ 수치 표현이 달랐던거군요 

책이랑 다르길래 좀 해맷네요 ~

감사합니다
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입