주요 콘텐츠

round

R2026b

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

설명

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 = 1×3 duration
   08:29:01.30   08:30:01.80   08:31:02.30

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

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

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

입력 인수

모두 축소

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

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

round는 X의 논리형 요소와 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 short과 format long은 모두 반올림된 숫자를 표시합니다. 이 표시와 round 함수를 함께 사용하면 예기치 않은 결과가 나올 수 있습니다.

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

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장