• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 位置: MySQL 8 中文手册 -> MySQL 函数和运算符

    精密数学函数

    MySQL提供了对精密数学的支持:数值处理可产生极其精确的结果,并对无效值进行高度控制。精度数学基于以下两个功能:

    • SQL模式控制服务器对接受或拒绝无效数据的严格程度。
    • 用于定点运算的MySQL库。

    这些功能对数值运算有一些影响,并提供与标准SQL的高度一致性:

    • 精密计算:对于精确值数字,计算不会引入浮点误差。而是使用精确的精度。例如,MySQL将数字(例如,.0001精确值)而不是近似值视为数字,将其相加10,000次将产生正好结果1,而不是一个仅“接近” 1的值。
    • 明确定义的舍入行为:对于精确值的数字,的结果ROUND()取决于其参数,而不取决于环境因素(例如基础C库的工作方式)。
    • 平台无关性:在不同的平台(例如Windows和Unix)上,对精确数值进行的操作相同。
    • 控制处理无效值:可以检测到溢出和零除,可以将其视为错误。例如,您可以将对于列而言太大的值视为错误,而不是将其值截断为不在列数据类型的范围之内。同样,您可以将零除视为错误,而不是产生的结果NULL。采取哪种方法的选择取决于服务器SQL模式的设置。

    以下讨论涵盖了精确数学如何工作的多个方面,包括与较旧应用程序可能不兼容的情况。最后,给出了一些示例,这些示例演示了MySQL如何精确地处理数字运算。有关控制SQL模式的信息,请参见“服务器SQL模式”。