Main Content

round

가장 가까운 소수 자릿수 또는 정수로 반올림

설명

예제

Y = round(X)X의 각 요소를 가장 가까운 정수로 반올림합니다. 반올림 경계에 놓인 숫자, 즉 요소의 소수부가 0.5(반올림 오차 내)인 경우 round 함수는 0에서 더 멀리 떨어진, 크기가 더 큰 가장 가까운 정수로 반올림합니다.

예제

Y = round(X,N)N자릿수로 반올림합니다.

  • N > 0: 소수점 오른쪽N자릿수로 반올림합니다.

  • N = 0: 가장 가까운 정수로 반올림합니다.

  • N < 0: 소수점 왼쪽N자릿수로 반올림합니다.

예제

Y = round(X,N,type)은 반올림 유형을 지정합니다. "significant"를 지정하면 맨 왼쪽 자릿수부터 N개의 유효 자릿수로 반올림합니다. 이 경우 N은 양의 정수여야 합니다.

예제

Y = round(___,TieBreaker=direction)은 반올림 경계에 놓인 숫자를 direction에 지정된 대로 반올림합니다. 위에 열거된 구문에 나와 있는 입력 인수의 조합 다음에 이 인수를 사용하십시오.

예제

Y = round(t)duration형 배열 t의 각 요소를 가장 가까운 시간(초)으로 반올림합니다.

예제

Y = round(t,unit)t의 각 요소를 가장 가까운 지정된 시간 단위 수로 반올림합니다.

예제

모두 축소

2×2 행렬의 요소를 가장 가까운 정수로 반올림합니다.

X = [2.11 3.5; -3.5 0.78];
Y = round(X)
Y = 2×2

     2     4
    -4     1

pi를 소수점 이하 3자리의 가장 가까운 수로 반올림합니다.

Y = round(pi,3)
Y = 3.1420

숫자 863178137을 가장 가까운 100의 배수로 반올림합니다.

round(863178137,-2)
ans = 863178100

벡터의 요소를 유효 자릿수 2자리를 유지하도록 반올림합니다.

X = [1253 1.345 120.44]
X = 1×3
103 ×

    1.2530    0.0013    0.1204

Y = round(X,2,"significant")
Y = 1×3
103 ×

    1.3000    0.0013    0.1200

format 명령은 MATLAB®이 명령줄에 숫자를 표시하는 방식을 제어합니다. 숫자에 현재 형식으로 표시할 수 없는 추가 자릿수가 있을 경우 MATLAB은 화면 표시를 위해 숫자를 자동으로 반올림합니다. 이 표시를 round 함수와 함께 사용하면 예기치 않은 결과가 나올 수 있습니다.

다음 뺄셈 연산의 결과를 살펴보겠습니다. 이 결과는 5자리 숫자를 표시합니다.

format short
x = 112.05 - 110
x = 2.0500

표시된 결과는 2.0500이며, 경계에 놓인 숫자인 것처럼 보입니다. 그러나 부동소수점 산술 오류로 인해 이 숫자의 소수부 0.5는 반올림 오차 내에 있지 않습니다.

x의 표시된 값을 기반으로, x를 소수점 이하 한 자릿수로 반올림하면 2.1이 반환되어야 합니다.

y = round(x,1)
y = 2

사실 문제는 MATLAB이 화면 표시를 위해 x를 5자릿수로 반올림한다는 데 있습니다. round 함수는 올바른 답을 반환합니다. format long과 함께 x를 표시하여 답을 확인할 수 있습니다. 이 경우 x가 15자릿수로 반올림되어 표시됩니다.

format long
x
x = 
   2.049999999999997

비교를 위해, 경계에 놓인 숫자가 반올림 오차 내에 있는 경우와 반올림 오차 내에 있지 않은 경우의 결과를 표시해 봅니다.

x1 = 2.05
x1 = 
   2.050000000000000

y1 = round(x1,1)
y1 = 
   2.100000000000000

x2 = 2.05 - eps(2.05)
x2 = 
   2.049999999999999

y2 = round(x2,1)
y2 = 
     2

경계에 놓인 숫자, 즉 소수부가 0.5(반올림 오차 내)인 숫자로 구성된 벡터를 만듭니다.

X = -2.5:1:2.5
X = 1×6

   -2.5000   -1.5000   -0.5000    0.5000    1.5000    2.5000

경계에 놓인 숫자를 가장 가까운 짝수 정수 및 가장 가까운 홀수 정수로 반올림합니다.

Yeven = round(X,TieBreaker="even")
Yeven = 1×6

    -2    -2     0     0     2     2

Yodd = round(X,TieBreaker="odd")
Yodd = 1×6

    -3    -1    -1     1     1     3

경계에 놓인 숫자를 양의 무한대 방향 및 음의 무한대 방향으로 반올림합니다.

Yplusinf = round(X,TieBreaker="plusinf")
Yplusinf = 1×6

    -2    -1     0     1     2     3

Yminusinf = round(X,TieBreaker="minusinf")
Yminusinf = 1×6

    -3    -2    -1     0     1     2

경계에 놓인 숫자를 0에서 멀어지는 방향 및 0에 가까운 방향으로 반올림합니다.

Yfromzero = round(X,TieBreaker="fromzero")
Yfromzero = 1×6

    -3    -2    -1     1     2     3

Ytozero = round(X,TieBreaker="tozero")
Ytozero = 1×6

    -2    -1     0     0     1     2

duration형 배열의 각 값을 가장 가까운 시간(초)으로 반올림합니다.

t = hours(8) + minutes(29:31) + seconds(1.3:0.5:2.3);
t.Format = "hh:mm:ss.SS"
t = 1x3 duration
   08:29:01.30   08:30:01.80   08:31:02.30

Y1 = round(t)
Y1 = 1x3 duration
   08:29:01.00   08:30:02.00   08:31:02.00

t의 각 값을 가장 가까운 기간(시간)으로 반올림합니다.

Y2 = round(t,"hours")
Y2 = 1x3 duration
   08:00:00.00   09:00:00.00   09:00:00.00

입력 인수

모두 축소

입력 배열로, 스칼라, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다. 복소수 X의 경우 round는 실수부와 허수부를 개별적으로 처리합니다.

round를 둘 이상의 입력값과 함께 사용하는 경우 Xsingle형, double형, table형 또는 timetable형이어야 합니다.

roundX의 논리형 요소와 char형 요소를 double형 값으로 변환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | logical | table | timetable
복소수 지원 여부:

자릿수로, 정수 스칼라로 지정됩니다. N을 지정하면 round(X,N) 함수는 X를 가장 가까운 10—N의 배수로 반올림합니다.

"significant" 반올림 유형을 지정할 경우 N은 양의 정수여야 합니다.

반올림 유형으로, "decimals""significant"로 지정됩니다. 반올림 유형은 round가 소수점을 기준으로 한 자릿수를 고려할지 아니면 전체 유효 자릿수를 기준으로 한 자릿수를 고려할지 여부를 결정합니다. "significant"를 지정할 경우 N은 양의 정수여야 합니다. 이 경우 round 함수는 유효 자릿수 N자리의 가장 가까운 수로 반올림합니다.

디폴트 값은 "decimals"입니다. 따라서 round(X,N,"decimals")round(X,N)과 동일합니다.

예: round(3132,2,"significant")는 유효 자릿수 2자리에서 3132에 가장 가까운 수인 3100을 반환합니다.

데이터형: char | string

우선 순위를 결정할 방향으로, 다음 값 중 하나로 지정됩니다.

  • "fromzero" — 0에서 더 멀리 떨어진, 즉 크기가 더 큰 가장 가까운 정수로 올림합니다.

  • "tozero" — 0에 더 가까운, 즉 크기가 더 작은 가장 가까운 정수로 내림 또는 올림합니다.

  • "even" — 가장 가까운 짝수 정수로 반올림합니다.

  • "odd" — 가장 가까운 홀수 정수로 반올림합니다.

  • "plusinf" — 양의 무한대 방향으로, 즉 크기가 더 큰 가장 가까운 정수로 올림합니다.

  • "minusinf" — 음의 무한대 방향으로, 즉 크기가 더 작은 가장 가까운 정수로 내림합니다.

어떤 숫자가 반올림 경계에 놓인 경우는 드뭅니다. round(X,N,TieBreaker=direction)을 사용할 때 이처럼 경계에 놓인 숫자는 X * 10N이 연속하는 두 정수 사이의 중간 지점의 반올림 오차 내에 있는 경우, 즉 X * 10N의 소수부가 0.5(반올림 오차 내)인 경우에만 발생합니다.

예: round(2.015,2,TieBreaker="even")

입력 기간으로, duration형 배열로 지정됩니다.

시간 단위로, "seconds", "minutes", "hours", "days", "years" 중 하나로 지정됩니다. 1년의 기간은 24시간 일수 단위로 정확히 365.2425일과 같습니다.

데이터형: char | string

  • format shortformat long은 모두 반올림된 숫자를 표시합니다. 이 표시와 round 함수를 함께 사용하면 예기치 않은 결과가 나올 수 있습니다.

  • 화면 표시를 위해, sprintf를 사용하여 숫자의 정확한 표시를 문자열로 제어할 수 있습니다. 예를 들어, 정확히 pi의 소수점 이하 2자릿수를 표시하려면(후행 0은 표시 안 함) sprintf("%.2f",pi)를 사용하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장