정수 나눗셈 시 정밀도를 높이려면 피제수를 CAST(컬럼 AS DECIMAL(전체자릿수, 소수자릿수))로 변환한 후 나누세요.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1823 (Value INT); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO DemoTable1823 VALUES(1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1823 VALUES(2); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1823 VALUES(3); Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1823;
+-------+ | Value | +-------+ | 1 | | 2 | | 3 | +-------+ 3 rows in set (0.00 sec)
DECIMAL(30,20)로 캐스팅 후 3으로 나누기
mysql> SELECT CAST(Value AS DECIMAL(30,20)) / 3 AS Result FROM DemoTable1823;
+----------------------------+ | Result | +----------------------------+ | 0.333333333333333333333333 | | 0.666666666666666666666667 | | 1.000000000000000000000000 | +----------------------------+ 3 rows in set (0.00 sec)
해설: DECIMAL(30,20)은 전체 30자리 중 소수 20자리. 정수 나눗셈(1/3)은 정수 결과(0) 또는 기본 소수 몇 자리만 나옴. 캐스팅 후 나누면 고정소수점 연산으로 원하는 정밀도 확보. 금융 계산엔 DECIMAL 필수.