ROUND
更新时间:2025-10-17
描述
将数字 x
四舍五入后保留 d
位小数。
- 如果没有指定
d
,则将x
四舍五入到最近的整数。 - 如果
d
为负数,则结果小数点左边d
位为 0。 - 如果
x
或d
为null
,返回null
。 - 如果
d
为一个列,并且第一个参数为Decimal
类型,那么结果Decimal
会跟入参Decimal
具有相同的小数部分长度。
别名
DROUND
语法
SQL
1ROUND(<x> [ , <d> ])
参数
参数 | 说明 |
---|---|
<x> |
需要四舍五入的数值 |
<d> |
可选,四舍五入需要保留的小数位数 |
举例
SQL
1select round(2.4);
Text
1+------------+
2| round(2.4) |
3+------------+
4| 2 |
5+------------+
SQL
1select round(2.5);
Text
1+------------+
2| round(2.5) |
3+------------+
4| 3 |
5+------------+
SQL
1select round(-3.4);
Text
1+-------------+
2| round(-3.4) |
3+-------------+
4| -3 |
5+-------------+
SQL
1select round(-3.5);
Text
1+-------------+
2| round(-3.5) |
3+-------------+
4| -4 |
5+-------------+
SQL
1select round(1667.2725, 2);
Text
1+---------------------+
2| round(1667.2725, 2) |
3+---------------------+
4| 1667.27 |
5+---------------------+
SQL
1select round(1667.2725, -2);
Text
1+----------------------+
2| round(1667.2725, -2) |
3+----------------------+
4| 1700 |
5+----------------------+
SQL
1CREATE TABLE test_enhanced_round (
2 rid int, flo float, dou double,
3 dec90 decimal(9, 0), dec91 decimal(9, 1), dec99 decimal(9, 9),
4 dec100 decimal(10,0), dec109 decimal(10,9), dec1010 decimal(10,10),
5 number int DEFAULT 1)
6DISTRIBUTED BY HASH(rid)
7PROPERTIES("replication_num" = "1" );
8
9INSERT INTO test_enhanced_round
10VALUES
11(1, 12345.123, 123456789.123456789,
12 123456789, 12345678.1, 0.123456789,
13 123456789.1, 1.123456789, 0.123456789, 1);
14
15SELECT number, dec90, round(dec90, number), dec91, round(dec91, number), dec99, round(dec99, number) FROM test_enhanced_round order by rid;
Text
1+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+
2| number | dec90 | round(dec90, number) | dec91 | round(dec91, number) | dec99 | round(dec99, number) |
3+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+
4| 1 | 123456789 | 123456789 | 12345678.1 | 12345678.1 | 0.123456789 | 0.100000000 |
5+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+
注意事项
2.5 会舍入到 3,如果想要舍入到 2 的算法,请使用 round_bankers
函数。