반응형

참조사이트 - 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으로 나누시면 됩니다.



반응형

+ Recent posts