database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 591 게시물 읽기
No. 591
Q.반올림 관련 함수 질의입니다.
작성자
권진옥
작성일
2007-10-04 21:18
조회수
3,750

안녕하세요

반올림과 관련한 함수에 관하여 질의가 있어서요..  

성적처리 프로그램에 반올림 아래 두가지 반올림 함수가 불규칙적으로 쓰여서 차이점을 알고 싶습니다.

 

NUMERIC과 ROUND함수인데요..

ROUND는 소수자리수를 유지하고 반올림하는 것이고 NUMERIC은 소수자리수에도 변동이 있다고 이전 답변에서 보았습니다.

 

예를 들어

ROUND(123.123456, 3) ->123.123000

cast( 123.123456 as numeric(38,3) ) ->123.123

이렇게 나오는 것이 맞지요?

 

1. 소수자리수를 유지하는 것과 소수자리수를 유지하지 않는 것이 성적처리하는데 서로 다른 성적처리 결과를 만들 수 있는지요? 제 짧은 생각에는 위 두 함수중 어떤 함수를 써도 성적처리결과는 동일할 것 같아서요..

 

2. 그리고 cast( 123456.123556 as numeric(38,3) ) 이렇게 써도 되는데 굳이

cast( ROUND(123456.123556 ,3) as numeric(38,3) ) 이와같이 ROUND한 것에 NUMERIC을 다시 한번 하는 이유도 알고 싶습니다.

 

 

 

이 글에 대한 댓글이 총 1건 있습니다.

안녕하세요 권진옥 선생님.

 

데이터타입을 실수형을 선언할 경우

프로토콜 IEEE 754-1985에 의해 가독성이 떨어집니다.

아마 이런 이유에서 데이터타입을 numeric으로 설정하였을 것이며,

성적처리는 c언어 기반의 METHOD로 작성되어 있어

정확한 자리수를 맞추기 위해 cast를 사용한 것으로 보입니다.

 

두번째 질문에 예에서 ROUND()함수를 사용할 필요가 없습니다.

개발자의 스타일(?) 혹은 ROUND(a/b, 4)과 같이 연산이 필요한 경우

cast와 ROUND를 써야 할 필요는 있습니다.

 

 

>안녕하세요

>반올림과 관련한 함수에 관하여 질의가 있어서요..  

>성적처리 프로그램에 반올림 아래 두가지 반올림 함수가 불규칙적으로 쓰여서 차이점을 알고 싶습니다.

>

>NUMERIC과 ROUND함수인데요..

>ROUND는 소수자리수를 유지하고 반올림하는 것이고 NUMERIC은 소수자리수에도 변동이 있다고 이전 답변에서 보았습니다.

>

>예를 들어

>ROUND(123.123456, 3) ->123.123000

>cast( 123.123456 as numeric(38,3) ) ->123.123

>이렇게 나오는 것이 맞지요?

>

>1. 소수자리수를 유지하는 것과 소수자리수를 유지하지 않는 것이 성적처리하는데 서로 다른 성적처리 결과를 만들 수 있는지요? 제 짧은 생각에는 위 두 함수중 어떤 함수를 써도 성적처리결과는 동일할 것 같아서요..

>

>2. 그리고 cast( 123456.123556 as numeric(38,3) ) 이렇게 써도 되는데 굳이

>cast( ROUND(123456.123556 ,3) as numeric(38,3) ) 이와같이 ROUND한 것에 NUMERIC을 다시 한번 하는 이유도 알고 싶습니다.

 

허지웅님이 2007-10-05 11:38에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
596Q.질의어로 테이블 생성하면 [1]
김기복
2007-10-07
3132
594Q.select 구문 추가질문 [1]
김선우
2007-10-05
3320
592Q.ARRAY [1]
김선우
2007-10-04
2996
591Q.반올림 관련 함수 질의입니다. [1]
권진옥
2007-10-04
3750
590Q.select질문 [1]
김선우
2007-10-04
3144
589Q.commdb.exe 에러가 지속적으로 발생합니다. [2]
오동환
2007-10-04
2884
588Q.윈도우버젼에서의 메소드 지원 여부 [1]
나그네
2007-10-03
3224
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다