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).