MySQL ROUND()和TRUNCATE()函数的用法(附带实例)
MySQL 中的 ROUND(x) 返回最接近于参数 x 的整数,即对 x 值进行四舍五入。
【实例】使用 ROUND(x) 函数对操作数进行四舍五入操作,SQL 语句如下:
ROUND(x,y) 返回最接近于参数 x 的数,若 y 为正值,则将保留到小数点后面 y 位;若 y 为负值,则将保留到小数点左边 y 位。
【实例】使用 ROUND(x,y) 函数对操作数进行四舍五入操作,结果保留小数点后面指定 y 位,SQL 语句如下:
TRUNCATE(x,y) 返回被舍去至小数点后 y 位的数值 x。若 y 为 0,则结果不带有小数部分;若 y 为负数,则截去(归零数值)x 自小数点左起第 y 位开始的所有低位的值。
【实例】使用 TRUNCATE(x,y) 函数对操作数进行截取操作,结果保留小数点后面指定 y 位,SQL 语句如下:
【实例】使用 ROUND(x) 函数对操作数进行四舍五入操作,SQL 语句如下:
mysql> SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66); +--------------+--------------+-------------+-------------+ | ROUND(-1.14) | ROUND(-1.67) | ROUND(1.14) | ROUND(1.66) | +--------------+--------------+-------------+-------------+ | -1 | -2 | 1 | 2 | +--------------+--------------+-------------+-------------+可以看到,对参数 x 进行四舍五入处理之后,只保留了各个值的整数部分。
ROUND(x,y) 返回最接近于参数 x 的数,若 y 为正值,则将保留到小数点后面 y 位;若 y 为负值,则将保留到小数点左边 y 位。
【实例】使用 ROUND(x,y) 函数对操作数进行四舍五入操作,结果保留小数点后面指定 y 位,SQL 语句如下:
mysql> SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), ROUND(232.38,-2); +----------------+----------------+-------------------+-----------------+ | ROUND(1.38, 1) | ROUND(1.38, 0) | ROUND(232.38, -1) | ROUND(232.38,-2)| +----------------+----------------+-------------------+-----------------+ | 1.4 | 1 | 230 | 200 | +----------------+----------------+-------------------+-----------------+
- ROUND(1.38, 1) 保留小数点后面1位,四舍五入的结果为 1.4;
- ROUND(1.38, 0)保留小数点后面 0 位,即返回四舍五入后的整数值;
- ROUND(23.38, -1) 和 ROUND(232.38,-2) 分别保留小数点左边 1 位和 2 位。
提示,y 值为负数时,保留的小数点左边的相应位数直接保存为 0,不进行四舍五入。
TRUNCATE(x,y) 返回被舍去至小数点后 y 位的数值 x。若 y 为 0,则结果不带有小数部分;若 y 为负数,则截去(归零数值)x 自小数点左起第 y 位开始的所有低位的值。
【实例】使用 TRUNCATE(x,y) 函数对操作数进行截取操作,结果保留小数点后面指定 y 位,SQL 语句如下:
mysql> SELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0), TRUNCATE(19.99,-1); +----------------+----------------+----------------+-------------------+ |TRUNCATE(1.31,1)|TRUNCATE(1.99,1)|TRUNCATE(1.99,0)| TRUNCATE(19.99,-1)| +----------------+----------------+----------------+-------------------+ | 1.3 | 1.9 | 1 | 10 | +----------------+----------------+----------------+-------------------+
- TRUNCATE(1.31,1) 和 TRUNCATE(1.99,1) 都保留小数点后1位数字,返回值分别为 1.3 和 1.9;
- TRUNCATE(1.99,0) 返回整数部分 1;
- TRUNCATE(19.99,−1) 截去自小数点左边第 1 位开始的所有值,并将对应的整数部分置 0,结果为 10。