반올림 함수
다음 문서는 system.functions 시스템 테이블을 기반으로 생성되었습니다.
ceil
도입 버전: v1.1
floor와 유사하지만, x보다 크거나 같은 수 중 가장 작은 값으로 올림한 결과를 반환합니다.
올림으로 인해 오버플로가 발생하는 경우(예: ceiling(255, -1)) 결과는 정의되지 않습니다.
구문
별칭: ceiling
인수
x— 반올림할 값.Float*또는Decimal*또는(U)Int*N— 선택적 인수입니다. 반올림할 소수 자릿수입니다. 기본값은 0이며, 정수로 반올림함을 의미합니다. 음수가 될 수도 있습니다.(U)Int*
반환 값
x와 동일한 타입의 반올림된 숫자를 반환합니다. Float* 또는 Decimal* 또는 (U)Int*
예시
기본 사용법
음수 정밀도
floor
도입된 버전: v1.1
반환 값은 x 이하인 값 가운데 가장 큰 반올림 값입니다. 이때 반올림 값은 1 / 10 * N의 배수이거나, 1 / 10 * N이 정확하지 않은 경우 해당 데이터 타입에서 가장 가까운 수입니다.
정수 인수는 N을 음수로 지정하여 반올림할 수 있습니다.
N이 0 이상이면 함수는 x를 그대로 반환합니다.
반올림으로 오버플로우가 발생하는 경우(예: floor(-128, -1)) 결과는 정의되지 않습니다.
구문
인수
x— 반올림할 값.Float*또는Decimal*또는(U)Int*N— 선택 사항. 반올림할 소수 자릿수입니다. 기본값은 0으로, 정수로 반올림함을 의미합니다. 음수일 수 있습니다.(U)Int*
반환 값
x와 같은 타입의 반올림된 숫자를 반환합니다. Float* 또는 Decimal* 또는 (U)Int*
예시
사용 예시
음수 자릿수
round
도입 버전: v1.1
값을 지정된 소수 자릿수 N까지 반올림합니다.
N > 0이면 소수점 오른쪽 자리를 기준으로 반올림합니다.N < 0이면 소수점 왼쪽 자리를 기준으로 반올림합니다.N = 0이면 가장 가까운 정수로 반올림합니다.
이 FUNCTION은 지정된 자릿수에서 가장 가까운 수를 반환합니다.
입력값이 두 인접한 수와의 거리가 동일한 경우, Float* 입력에 대해서는 banker's rounding을 사용하고 다른 숫자 타입(Decimal*)에 대해서는 0에서 멀어지는 방향으로 반올림합니다.
반올림으로 인해 오버플로우가 발생하는 경우(예: round(255, -1)), 결과는 정의되지 않습니다.
구문
인수
반환 값
x와 동일한 타입의 반올림된 숫자를 반환합니다. Float* 또는 Decimal* 또는 (U)Int*
예시
Float 입력값
소수 입력
roundAge
도입: v1.1
사람의 나이를 나타내는 숫자 값을 입력으로 받아 표준 연령 구간과 비교한 후, 해당 값이 속하는 구간의 최댓값 또는 최솟값을 반환합니다.
age < 1인 경우0을 반환합니다.1 ≤ age ≤ 17인 경우17을 반환합니다.18 ≤ age ≤ 24인 경우18을 반환합니다.25 ≤ age ≤ 34인 경우25를 반환합니다.35 ≤ age ≤ 44인 경우35를 반환합니다.45 ≤ age ≤ 54인 경우45를 반환합니다.age ≥ 55인 경우55를 반환합니다.
문법
인수
반환 값
age가 속하는 구간의 최댓값 또는 최솟값에 해당하는 나이를 반환합니다. UInt8
예시
사용 예시
roundBankers
도입 버전: v20.1
숫자를 지정된 소수 자리 N으로 반올림합니다.
반올림할 숫자가 두 수의 정확한 중간인 경우, 함수는 IEEE 754에서 부동 소수점 숫자의 기본 반올림 방식으로 정의된 「banker's rounding(은행가 반올림)」 방식을 사용합니다.
N > 0인 경우, 소수점 오른쪽 자리까지 반올림합니다.N < 0인 경우, 소수점 왼쪽 자리까지 반올림합니다.N = 0인 경우, 가장 가까운 정수로 반올림합니다.
- 반올림할 숫자가 두 수의 정확한 중간인 경우, 지정된 소수 자리에서 가장 가까운 짝수 숫자로 반올림합니다.
예:
3.5는4로 반올림되고,2.5는2로 반올림됩니다. round함수는 부동 소수점 숫자에 대해 동일한 방식으로 반올림합니다.roundBankers함수는 정수에 대해서도 같은 방식으로 반올림합니다. 예:roundBankers(45, -1) = 40.- 그 외의 경우에는 함수를 사용하여 숫자를 가장 가까운 정수로 반올림합니다.
banker's rounding을 사용하면 숫자를 반올림하는 과정이 이 숫자들의 합계나 차감 결과에 미치는 영향을 줄일 수 있습니다.
예를 들어, 숫자 1.5, 2.5, 3.5, 4.5를 서로 다른 반올림 방식으로 합산하면 다음과 같습니다:
- 반올림 없음:
1.5 + 2.5 + 3.5 + 4.5 = 12. - banker's rounding:
2 + 2 + 4 + 4 = 12. - 가장 가까운 정수로 반올림:
2 + 3 + 4 + 5 = 14.
구문
인자
x— 반올림할 숫자입니다.(U)Int*또는Decimal*또는Float*[, N]— 선택 사항입니다. 반올림할 소수점 이하 자릿수입니다. 기본값은0입니다.(U)Int*
반환 값
banker's rounding(은행식 반올림) 방식으로 반올림된 값을 반환합니다. (U)Int* 또는 Decimal* 또는 Float*
예시
기본 사용법
roundDown
도입 버전: v20.1
숫자를 지정한 배열의 요소 중 하나로 내림(하향 반올림)합니다. 값이 하한값보다 작으면 하한값을 반환합니다.
구문
인수
num— 내림할 숫자입니다.(U)Int*또는Decimal*또는Float*arr—num을 내릴 기준이 되는 요소들의 배열입니다.Array((U)Int*)또는Array(Float*)
반환 값
arr의 요소 중 하나로 내림된 숫자를 반환합니다. 값이 배열의 최솟값보다 작으면 배열의 최솟값을 반환합니다. (U)Int* 또는 Float*
예시
사용 예시
roundDuration
도입 버전: v1.1
숫자를 자주 사용되는 기간(duration) 값 집합 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000 중에서, 해당 숫자 이하이면서 가장 가까운 값으로 내립니다.
숫자가 1보다 작으면 0을 반환합니다.
구문
인수
반환 값
num < 1인 경우 0을 반환합니다. 그렇지 않으면 다음 값 중 하나를 반환합니다: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. UInt16
예시
사용 예시
roundToExp2
도입 버전: v1.1
수를 가장 가까운 (0 이상의 정수인) 2의 거듭제곱 값 중 원래 수보다 작거나 같은 값으로 내림합니다.
수가 1보다 작으면 0을 반환합니다.
구문
인자
반환값
num을 가장 가까운 (0 이상의 정수인) 2의 거듭제곱으로 내림한 값을 반환하며, num이 1보다 작으면 0을 반환합니다. (U)Int* 또는 Float*
예시
사용 예시
trunc
도입된 버전: v1.1
floor와 유사하지만, x의 절댓값 이하이면서 절댓값이 가장 큰 값으로 반올림한 숫자를 반환합니다.
구문
별칭: truncate
인수
x— 반올림할 값입니다.Float*또는Decimal*또는(U)Int*N— 선택적 인수입니다. 반올림할 소수점 이하 자릿수입니다. 기본값은 0이며, 정수로 반올림함을 의미합니다.(U)Int*
반환 값
x와 동일한 타입의 반올림된 숫자를 반환합니다. Float* 또는 Decimal* 또는 (U)Int*
예제
기본 사용법