SELECT ROUND(column_name,decimals) FROM table_name;
参数 | 描述 |
---|---|
column_name | 必需。要舍入的字段。 |
decimals | 必需。规定要返回的小数位数。 |
SQL ROUND() 实例
ROUND(X): 返回参数X的四舍五入的一个整数。
mysql> select ROUND(-1.23);
-> -1
mysql> select ROUND(-1.58);
-> -2
mysql> select ROUND(1.58);
-> 2
ROUND(X,D): 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
mysql> select ROUND(1.298, 1);
-> 1.3
mysql> select ROUND(1.298, 0);
-> 1
注意:ROUND 返回值被变换为一个BIGINT!
注意事项:
9代表存在数字则显示数字,没有则显示空格;
0代表存在数字则显示数字,没有则显示0;
FM 删除9产生的空格;
另外,’.’后面多出的9或0均会补0
如to_char(111.11,’FM990.00’) 结果为111.11
to_char(111.11,’FM990.009’) 结果为111.11
to_char(111.11,’FM990.000’) 结果为111.110
to_char 中fm
1,有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位
select to_char(9999.09556,'fm99999.0900'),to_char(9999.09556,'fm00099.0900') from dual
结果为:
9999.0956 /09999.0956
2,截取小数的时候是四舍五入
select to_char(90.99,'fm999.0')保留一位小数,to_char(90.99,'fm999.00')保留2位小数 from dual
结果为:91.0/90.99
3,如果用fm9.99 整数仍然会显示.,如果不需要需要替换
select to_char(9,'fm99.99'),regexp_replace(to_char(9,'fm99.99'), '\.$', '') from dual
结果为:9./9
4,fm中整数部分需大于等于值的整数部分长度
select to_char(99999.09, 'fm9.09'),
to_char(99999.09, 'fm99.09'),
to_char(99999.09, 'fm999.09'),
to_char(99999.09, 'fm9999.09'),
to_char(99999.09, 'fm99999.00')
from dual
结果为:
#####/######/#######/########/99999.09
select to_char(99999.09, 'fm0.09'),
to_char(99999.09, 'fm00.09'),
to_char(99999.09, 'fm000.09'),
to_char(99999.09, 'fm0000.09'),
to_char(99999.09, 'fm00000.00')
from dual
结果为:
#####/######/#######/########/99999.09
更多用法,请看:https://www.cnblogs.com/story1/p/8021623.html