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
운영게시판
최근게시물
PostgreSQL Q&A 2738 게시물 읽기
No. 2738
Re: 제 생각에는....
작성자
김일형
작성일
2001-05-15 03:13
조회수
3,923

그저 저의 생각을 끄적거려 봅니다.

 

:: 3/2 = 1 /// ???

 

위의 문제는 기본적으로 정수형을 정수형으로 나누는 것이니 다른 일반적인 언어들과 마찬가지로 1이 나오는 것은 당연할 것 같다는 생각입니다.

만일 위의 결과를 1.5를 얻고 싶으시면

 

=# select 3/ (2 * 1.0 );

?column?

//////////

1.5

(1 row)

 

또는

=# select 3 / CAST( 2 as real );

?column?

//////////

1.5

(1 row)

 

하는 방법이 있을 듯합니다.

 

:: 10.0/2.0 = 5 /// ??? 정수가 되어 버림.

:: 3.0 % 2.0 = 1 ///??? 역시 정수가 되어 버림

 

글쎄요, 저의 개인적인 생각으로는 5가 정수로 취급된다기 보다 소숫점이하 자리가 없어서 보이기를 그냥 정수처럼 보이는 것이 아닐까요?

 

bbs=# select 5.0;

?column?

//////////

5

(1 row)

 

위의 예에서 명시적으로 실수형을 넘겼음에도 5로 나오는 것을 보면 더욱 그렇다는 생각이 짙게 듭니다.

 

:: 3 % 2.0 = error /// ???

 

의 에러메시지를 보니까

bbs=# select 3 % 2.0;

ERROR: Unable to identify an operator '%' for types 'int4' and 'float8'

You will have to retype this query using an explicit cast

ERROR: Unable to identify an operator '%' for types 'int4' and 'float8'

You will have to retype this query using an explicit cast

 

라고 나오는데..메세지 상으로는 아마도 '%'연산자가 정수형과 실수형을 섞어서 사용할 수 없는것 같습니다.

 

bbs=# select cast( 3 as float8 ) / 2.0;

?column?

//////////

1.5

(1 row)

 

이와같이 명시적으로 cast를 해주니까 문제가 없이 되네요...

 

그냥 저의 생각입니다. 초보자라서...

 

김일형.

 

 

>>신현호 님께서 쓰시길<<

 

:: 7.1에서 나온 결과인데...

:: 정상인지 아니면 웃기는 경우인지... 나원...

::

:: 3/2 = 1 /// ???

:: 3.0/2.0 = 1.5

:: 10.0/2.0 = 5 /// ??? 정수가 되어 버림.

::

:: 3 % 2 = 1

:: 3 % 2.0 = error /// ???

:: 3.0 % 2.0 = 1 ///??? 역시 정수가 되어 버림

::

:: 뭔데... 이건...?

::

:: 우선은 시험해 본것만 씁니다.

:: PL/pgSQL 예제 만들다가 점점 이상해저서 ...

::

::

:: 인천의 나사 풀린 산호...

[Top]
No.
제목
작성자
작성일
조회
2741묘한 수식 (중간 보고...)
신현호
2001-05-15
3858
2743┕>Re: 묘한 수식 (중간 보고...)
정재익
2001-05-15 09:07:48
4208
2744┕>Re: 연산자 이야기
김상기
2001-05-15 11:05:55
4636
2745 ┕>Re: Re: 연산자 이야기 (감사합니다.)
신현호
2001-05-15 12:21:53
4968
2734[질문] rowid같이 해당되는 레코드를 바로 액세스하려면??
이병기
2001-05-14
3961
2737┕>Re: [질문] rowid같이 해당되는 레코드를 바로 액세스하려면??
정재익
2001-05-14 18:50:35
3961
2742 ┕>Re: Re: [질문] rowid같이 해당되는 레코드를 바로 액세스하려면??
이태웅
2001-05-15 08:59:51
4085
2729테이블의 존재여무를 알수있는 쿼리는..알려주세요..
정철희
2001-05-14
3848
2731┕>Re: 시스템 카탈로그를 사용하는 방법이 있습니다.
신현호
2001-05-14 10:24:27
4151
2732┕>Re: 테이블의 존재여무를 알수있는 쿼리는..알려주세요..
정철희
2001-05-14 12:33:31
4187
2733 ┕>Re: Re: 테이블의 존재여무를 알수있는 쿼리는..알려주세요..
정재익
2001-05-14 13:50:13
3986
2725묘한 수식 계산...
신현호
2001-05-14
3764
2726┕>Re: 묘한 문자열 처리...
이태웅
2001-05-14 09:26:18
4010
2727 ┕>Re: Re: 묘한 문자열 처리...
신현호
2001-05-14 10:11:38
4031
2730  ┕>어라? 오동작? 실수?
신현호
2001-05-14 10:13:09
4050
2728 ┕>Re: Re: 묘한 문자열 처리...
신현호
2001-05-14 10:11:38
3813
2735 ┕>Re: Re: 묘한 문자열 처리...
삐진앙마
2001-05-14 16:41:45
3856
2736  ┕>Re: Re: Re: 묘한 문자열 처리...
삐진앙마
2001-05-14 16:50:41
4100
2751 ┕>Re: Re: 묘한 문자열 처리...
가우
2001-05-15 16:20:02
4044
2738┕>Re: 제 생각에는....
김일형
2001-05-15 03:13:23
3923
2739 ┕>Re: Re: 제 생각에는....
신현호
2001-05-15 05:56:19
4021
2740  ┕>Re: Re: Re: 잘못아신듯 싶습니다.
김상기
2001-05-15 06:54:34
4310
2723postgreSQL 7.1 컴파일 할때 gmake???
ppoki
2001-05-14
3559
2724┕>Re: postgreSQL 7.1 컴파일 할때 gmake???
정재익
2001-05-14 01:02:12
4195
2721공유 메모리 늘리는 방법좀... 가르켜 주세요....
심경훈
2001-05-13
3735
2722┕>Re: 공유 메모리 늘리는 방법좀... 가르켜 주세요....
정재익
2001-05-13 23:26:42
4212
2720감사합니다 정재익님
정창용
2001-05-12
3728
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다