NUMERIC TYPES

숫자 타입은 값의 성격으로 고른다

같은 숫자라도 수량, 측정값, 결제 금액은 정확도 요구가 다르다. 먼저 “소수가 필요한가”와 “오차를 허용하는가”를 나눈다.

금액과 정산에는 FLOAT를 쓰지 않는다. 근사 오차가 누적될 수 있으므로 고정 소수점 계열을 사용한다.

질문 선택 예시
소수가 없는가? 정수형 수량, 카운트, 식별자
근사값이어도 되는가? 부동소수형 온도, 평균, 과학 측정값
소수가 정확해야 하는가? 고정 소수점 가격, 세율, 정산 금액
분류 Oracle MySQL PostgreSQL
정수 NUMBER INT BIGINT INTEGER BIGINT
근사 소수 BINARY_FLOAT FLOAT DOUBLE REAL DOUBLE
정확 소수 NUMBER(p,s) DECIMAL(p,s) NUMERIC(p,s)

p와 s: p는 전체 자릿수, s는 소수점 이하 자릿수다. 예: NUMBER(10,2).