최종 수정: 에
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