10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

12.25.4舍入行为

的精确数学舍入圆的()函数和用于向具有精确值类型的列中插入(小数和整数)。

圆的()函数的舍入取决于它的参数是精确的还是近似的:

  • 为精确值的数字,圆的()使用圆的一半了规则:小数部分为0.5或更大的值,如果是正数则舍入到下一个整数,如果是负数则舍入到下一个整数。(换句话说,它是从0四舍五入的。)小数部分小于.5的值如果是正的,则舍入到下一个整数;如果是负的,则舍入到下一个整数。(换句话说,它被四舍五入到零。)

  • 对于近似值数字,结果取决于C库。在许多系统上,这意味着圆的()使用四舍五入到最接近偶数规则:在两个整数中间有小数部分的值被四舍五入到最接近的偶数。

下面的例子显示了舍入对精确值和近似值的区别:

SELECT ROUND(2.5), ROUND(25E-1);+------------+--------------+ | (25 e 1(2.5) |轮 ) | +------------+--------------+ | 3 | 2  | +------------+--------------+

插入到小数或整数列,目标是精确的数据类型,因此四舍五入使用离零四舍五入,无论要插入的值是精确的还是近似的:

mysql>创建TABLE (d DECIMAL(10,0));INSERT INTO t VALUES(2.5),(2.5 e0);查询OK, 2行影响,2警告(0.00秒)记录:2副本:0警告:2 mysql> SHOW warnings;+-------+------+----------------------------------------+ | 水平| |消息代码  | +-------+------+----------------------------------------+ | 注意| 1265 |数据截断列在第一行' d ' | | 1265 | |注意数据截断' d '行2列  | +-------+------+----------------------------------------+ 2行(0.00秒)mysql >选择从t d;+------+ | d  | +------+ | 3 | | 3  | +------+ 2行集(0.00秒)

显示警告语句显示由于小数部分四舍五入而截断所生成的注释。这样的截断不是错误,即使在严格的SQL模式下(参见第12.25.3节,“表达式处理”).