반응형
참조사이트 - http://bugs.mysql.com/bug.php?id=9957
다음과 같은 경우
> select round(87.875,2);
+------------+
| round(87.875,2)|
+------------+
| 87.87 |
+------------+
올바른 값은 87.88 입니다.
참조사이트 - http://www.soen.kr/lecture/ccpp/cpp1/8-1-4.htm
위의 경우처럼 반올림이 잘 안될 경우 floor함수를 사용하여 문제를 해결하였습니다.
round(87.875,2) => floor(87.875*100+0.5) / 100
위의 경우는 3째자리에서 2째자리로 반올림하기 때문에 100을 곱하고 0.5를 더한 뒤 floor한 후 100을 나누었습니다.
3자리일 경우 1000(10의 3승)을 곱하고 1000을 나누고 4자리일 경우 10000(10의 4승)을 곱하고 10000으로 나누시면 됩니다.
반응형
'SQL' 카테고리의 다른 글
INSERT INTO … SELECT FROM … ON DUPLICATE KEY UPDATE (0) | 2020.02.26 |
---|---|
MySQL에서 FULL OUTER JOIN 하는 방법? (0) | 2019.11.11 |
SELECT가 많은 칼럼 필드들을 가질 때 터미널에 최고의 방법으로 표시하는 방법은? (0) | 2014.10.27 |
MYSQL(Sybase)에서 Attempt to initiate a new SQL Server operation with results pending. 오류가 뜰 때 (0) | 2010.04.09 |
MSSQL에서 Heterogeneous queries 오류가 뜰 때 해결책. (0) | 2010.03.04 |