Spec-Zone.ru › MySQL 9.2

14.25 Точность математических вычислений

  • 14.25.1 Типы числовых значений
  • 14.25.2 Характеристики типа данных DECIMAL
  • 14.25.3 Обработка выражений
  • 14.25.4 Поведение округления
  • 14.25.5 Примеры точных математических вычислений

MySQL предоставляет поддержку точных математических вычислений: обработка числовых значений, которая приводит к чрезвычайно точным результатам и высокому контролю над недопустимыми значениями. Точные математические вычисления основаны на этих двух функциях:

  • Режимы SQL, которые контролируют, насколько строго сервер относится к принятию или отклонению недопустимых данных.

  • Библиотека MySQL для арифметики с фиксированной точкой.

Эти функции имеют несколько последствий для числовых операций и обеспечивают высокую степень соответствия стандартному SQL:

  • Точные вычисления: Для чисел с точным значением вычисления не вводят ошибок с плавающей точкой. Вместо этого используется точная точность. Например, MySQL рассматривает число, такое как .0001, как точное значение, а не как приближение, и суммирование его 10 000 раз дает результат ровно 1, а не значение, которое просто “близко” к 1.

  • Определенное поведение округления: Для чисел с точным значением результат функции ROUND() зависит от ее аргумента, а не от таких факторов среды, как работа подлежащей библиотеки C.

  • Независимость от платформы: Операции с точными числовыми значениями одинаковы на разных платформах, таких как Windows и Unix.

  • Управление обработкой недопустимых значений: Переполнение и деление на ноль могут быть обнаружены и обработаны как ошибки. Например, вы можете обработать значение, которое слишком велико для столбца, как ошибку, а не усечь значение, чтобы оно находилось в диапазоне типа данных столбца. Аналогично, вы можете обработать деление на ноль как ошибку, а не как операцию, которая дает результат NULL. Выбор подхода определяется настройками режима сервера SQL.

В данном обсуждении рассматриваются различные аспекты работы точных математических вычислений, включая возможные несовместимости со старыми приложениями. В конце приведены примеры, демонстрирующие, как MySQL обрабатывает числовые операции точно. Сведения о контроле режима SQL см. в разделе 7.1.11 «Режим сервера SQL».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/precision-math.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API