2018. 1. 15. 13:23
데이터베이스/Mysql
Decimal 과 Float중에 무엇을 사용해야 하는가?
가격과 같은 애들은 Decimal 사용해라 (오차범위때문)
Decimal: 고정 소수점, 같은 메모리 용량 안에서 Float보다 적은 범위 표시
Float: 부동 소수점, 같은 메모리 용량 안에서 Decimal보다 많은 범위 표시
이유: float의 경우, 연산시 오차가 발생 할 수 있다.
ex) float(2.3 * 100) => 229
컴퓨터는 2진법으로 계산.
float는 부동소수점으로 소수점 자릿수를 알 수 없는데, 이럴 경우 컴퓨터 식별 값은 2.12878715412….처럼 유한소수가 아닌 무한소수가 됨
유한소수가 아니기 때문에, 가장 근사치 값을 잡아 계산함
근사치로 계산하기 때문에 계산을 거듭 할 수록 오차가 생길 수 밖에 없는구조
해결하기 위해선 유한소수를 사용해야함
Decimal은 고정소수점으로 유한소수이기 때문에 Decimal을 사용
해결
PHP: http://kr.php.net/manual/kr/ref.bc.php (정밀연산함수사용)
DB: Decimal 사용 또는 DB연산 사용
참고
http://hsol.tistory.com/234
http://piook.tistory.com/73
http://bblog.tistory.com/295
'데이터베이스 > Mysql' 카테고리의 다른 글
mysql 테이블 컬럼 정보 조회 (0) | 2017.04.14 |
---|