12.20 정밀 계산
MySQL 5.6는 정밀 계산, 즉 매우 정확한 결과를 얻을 수 더 잘못된 값을 높은 수준에서 제어 할 수있는 숫자 처리를 지원하고 있습니다. 정밀 계산은 다음의 두 가지 기능을 기반으로합니다.
서버가 잘못된 데이터를 적용 및 거부에 대해 얼마나 엄격를 제어하는 SQL 모드.
고정 소수점 연산을위한 MySQL 라이브러리.
이러한 기능은 수치 조작에 어떤 영향을 미칠 함께 표준 SQL에 대한 고급 준수를 실현합니다.
정확한 계산 : 정확한 값 수치의 경우 계산에 부동 소수점 오류가 도입되지 않습니다. 대신 정확한 정밀도가 사용됩니다. 예를 들어, MySQL은
.0001
등의 수치를 근사값이 아니라 정확한 값으로 처리하고 10,000 번 더하면 1에 "가까운"만 값이 아니라 정확히1
의 결과가 생성됩니다.잘 정의 된 둥근 동작 : 정확한 값 수치의 경우
ROUND()
의 결과는 기반이되는 C 라이브러리의 동작 방법 등의 환경 요인이 아니라 인수에 따라 달라집니다.플랫폼에서 독립 : 정확한 값 수치에 대한 작업은 Windows 또는 Unix 등의 각 플랫폼에서 동일합니다.
잘못된 값 처리에 대한 제어 : 오버플로 및 0으로 나누기가 감지 할 수 있으며 이러한 오류로 처리 할 수 있습니다. 예를 들어, 컬럼에 비해 너무 큰 값은 그 컬럼의 데이터 형의 범위에 맞게 값이 잘되게하는 것이 아니라 오류로 처리 할 수 있습니다. 마찬가지로, 0으로 나누기는
NULL
결과를 생성하는 작업이 아닌 오류로 처리 할 수 있습니다. 두 접근 방식을 취할 것인가의 선택은 서버 SQL 모드의 설정에 의해 결정됩니다.
다음의 설명에서는 기존 응용 프로그램과의 비 호환성의 가능성을 포함한 정밀 계산의 동작 방법의 몇 가지 측면에 대해 다루고 있습니다. 마지막으로 MySQL 5.6이 수치 작업을 어떻게 처리 하는지를 정확하게 지적 몇 가지 예를 보여줍니다. SQL 모드의 제어 내용은 섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.