Перейти к содержимому
Последнее обновление

ROUND

Описание​

Округляет число x до указанного количества знаков.

  • Если d не указан, x округляется до ближайшего целого числа.
  • Если d отрицателен, результат округляется на d разрядов слева от десятичного разделителя.
  • Если x или d имеет значение null, возвращает null.
  • Если d является столбцом, а первый аргумент имеет тип Decimal, результирующее значение Decimal будет иметь столько же знаков после десятичного разделителя, сколько и входное значение Decimal.

Псевдоним​

  • DROUND

Синтаксис​

ROUND(<x> [ , <d> ])

Параметры​

ПараметрОписание
<x>Число для округления
<d>Необязательный параметр, задающий количество знаков после десятичного разделителя для округления

Примеры​

select round(2.4);
+------------+
| round(2.4) |
+------------+
| 2 |
+------------+
select round(2.5);
+------------+
| round(2.5) |
+------------+
| 3 |
+------------+
select round(-3.4);
+-------------+
| round(-3.4) |
+-------------+
| -3 |
+-------------+
select round(-3.5);
+-------------+
| round(-3.5) |
+-------------+
| -4 |
+-------------+
select round(1667.2725, 2);
+---------------------+
| round(1667.2725, 2) |
+---------------------+
| 1667.27 |
+---------------------+
select round(1667.2725, -2);
+----------------------+
| round(1667.2725, -2) |
+----------------------+
| 1700 |
+----------------------+
CREATE TABLE test_enhanced_round (
rid int, flo float, dou double,
dec90 decimal(9, 0), dec91 decimal(9, 1), dec99 decimal(9, 9),
dec100 decimal(10,0), dec109 decimal(10,9), dec1010 decimal(10,10),
number int DEFAULT 1)
DISTRIBUTED BY HASH(rid)
PROPERTIES("replication_num" = "1" );

INSERT INTO test_enhanced_round
VALUES
(1, 12345.123, 123456789.123456789,
123456789, 12345678.1, 0.123456789,
123456789.1, 1.123456789, 0.123456789, 1);

SELECT number, dec90, round(dec90, number), dec91, round(dec91, number), dec99, round(dec99, number) FROM test_enhanced_round order by rid;
+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+
| number | dec90 | round(dec90, number) | dec91 | round(dec91, number) | dec99 | round(dec99, number) |
+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+
| 1 | 123456789 | 123456789 | 12345678.1 | 12345678.1 | 0.123456789 | 0.100000000 |
+--------+-----------+----------------------+------------+----------------------+-------------+----------------------+

Примечание по использованию​

2.5 округляется до 3. Если нужно округлить до 2, используйте функцию round_bankers.