본문으로 건너뛰기
최종 수정: 에

FORMAT_ROUND

설명​

숫자를 "#,###,###.##"와 유사한 형식으로 변환하고, 지정된 소수 자릿수로 반올림한 뒤 결과를 문자열로 반환합니다.

팁

이 함수는 버전 3.0.6부터 지원됩니다.

구문​

FORMAT_ROUND(<number>, <D>)

매개변수​

매개변수설명
<number>서식을 적용할 숫자
<D>소수 자릿수. 범위: [0, 1024]

반환 값​

서식이 적용된 STRING 타입의 문자열을 반환합니다. 특수한 경우의 동작은 다음과 같습니다:

  • 매개변수가 NULL이면 NULL을 반환합니다.
  • D가 0이면 결과에 소수점이나 소수 부분이 포함되지 않습니다. Doris 4.1 시리즈에서는 4.1.5부터 D가 0일 때 DECIMAL 입력값도 반올림합니다. 이전 버전에서는 반올림 없이 소수 부분을 버릴 수 있었습니다.
  • D가 [0, 1024] 범위에 없으면 인수가 이 범위 내에 있어야 한다는 오류를 반환합니다.

예제​

select format_round(17014116, 2);
+---------------------------+
| format_round(17014116, 2) |
+---------------------------+
| 17,014,116.00 |
+---------------------------+
select format_round(1123.456, 2);
+---------------------------+
| format_round(1123.456, 2) |
+---------------------------+
| 1,123.46 |
+---------------------------+
select format_round(1123.4, 2);
+-------------------------+
| format_round(1123.4, 2) |
+-------------------------+
| 1,123.40 |
+-------------------------+
select format_round(123456, 0);
+-------------------------+
| format_round(123456, 0) |
+-------------------------+
| 123,456 |
+-------------------------+
select format_round(123456, 3);
+-------------------------+
| format_round(123456, 3) |
+-------------------------+
| 123,456.000 |
+-------------------------+
select format_round(123456.123456, 0);
+--------------------------------+
| format_round(123456.123456, 0) |
+--------------------------------+
| 123,456 |
+--------------------------------+
select format_round(123456.123456, 3);
+--------------------------------+
| format_round(123456.123456, 3) |
+--------------------------------+
| 123,456.123 |
+--------------------------------+
select format_round(123456.123456, 6);
+--------------------------------+
| format_round(123456.123456, 6) |
+--------------------------------+
| 123,456.123456 |
+--------------------------------+
SELECT format_round(-0.01, -1);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]The second argument is -1, it should be in range [0, 1024].
SELECT format_round(-0.01, -1500);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]The second argument is -1500, it should be in range [0, 1024].

DECIMAL 입력값을 정수로 반올림:

SELECT FORMAT_ROUND(CAST(1.9 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(-1.9 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(1.4 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(-1.4 AS DECIMAL(9, 1)), 0);
2    -2    1    -1

NULL 입력값:

SELECT FORMAT_ROUND(NULL, 2);
NULL