이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
round
가장 가까운 소수 자릿수 또는 정수로 반올림
구문
설명
Y = round(
는 X
)X
의 각 요소를 가장 가까운 정수로 반올림합니다. 반올림 경계에 놓인 숫자, 즉 요소의 소수부가 0.5
(반올림 오차 내)인 경우 round
함수는 0에서 더 멀리 떨어진, 크기가 더 큰 가장 가까운 정수로 반올림합니다.
예제
행렬 요소 반올림
지정된 소수 자릿수로 반올림
가장 가까운 100의 배수로 반올림
요소를 지정된 유효 자릿수로 반올림
벡터의 요소를 유효 자릿수 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형 값 반올림
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
입력 인수
X
— 입력 배열
스칼라 | 벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
입력 배열로, 스칼라, 벡터, 행렬, 다차원 배열, 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
— 자릿수
정수 스칼라
자릿수로, 정수 스칼라로 지정됩니다. N
을 지정하면 round(X,N)
함수는 X
를 가장 가까운 10—N의 배수로 반올림합니다.
"significant"
반올림 유형을 지정할 경우 N
은 양의 정수여야 합니다.
type
— 반올림 유형
"decimals"
(디폴트 값) | "significant"
반올림 유형으로, "decimals"
나 "significant"
로 지정됩니다. 반올림 유형은 round
가 소수점을 기준으로 한 자릿수를 고려할지 아니면 전체 유효 자릿수를 기준으로 한 자릿수를 고려할지 여부를 결정합니다. "significant"
를 지정할 경우 N
은 양의 정수여야 합니다. 이 경우 round
함수는 유효 자릿수 N
자리의 가장 가까운 수로 반올림합니다.
디폴트 값은 "decimals"
입니다. 따라서 round(X,N,"decimals")
는 round(X,N)
과 동일합니다.
예: round(3132,2,"significant")
는 유효 자릿수 2
자리에서 3132
에 가장 가까운 수인 3100
을 반환합니다.
데이터형: char
| string
direction
— 우선 순위를 결정할 방향
"fromzero"
(디폴트 값) | "tozero"
| "even"
| "odd"
| "plusinf"
| "minusinf"
우선 순위를 결정할 방향으로, 다음 값 중 하나로 지정됩니다.
"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")
t
— 입력 기간
duration
형 배열
입력 기간으로, duration
형 배열로 지정됩니다.
unit
— 시간 단위
"seconds"
(디폴트 값) | "minutes"
| "hours"
| "days"
| "years"
시간 단위로, "seconds"
, "minutes"
, "hours"
, "days"
, "years"
중 하나로 지정됩니다. 1년의 기간은 24시간 일수 단위로 정확히 365.2425일과 같습니다.
데이터형: char
| string
팁
format short
과format long
은 모두 반올림된 숫자를 표시합니다. 이 표시와round
함수를 함께 사용하면 예기치 않은 결과가 나올 수 있습니다.화면 표시를 위해,
sprintf
를 사용하여 숫자의 정확한 표시를 문자열로 제어할 수 있습니다. 예를 들어, 정확히pi
의 소수점 이하 2자릿수를 표시하려면(후행 0은 표시 안 함)sprintf("%.2f",pi)
를 사용하십시오.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 완전히 지원합니다. 자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성에서는 구문
Y = round(X)
만 지원됩니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성에서는 구문
Y = round(X)
만 지원됩니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
다음 구문은 지원되지 않습니다.
Y = round(X,N)
Y = round(X,N,type)
Y = round(___,TieBreaker=direction)
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2023a: 테이블 및 타임테이블에 대해 직접 계산 수행
round
함수는 테이블이나 타임테이블 내의 변수에 액세스하기 위한 인덱싱 없이 이러한 모든 변수에 대해 계산을 수행할 수 있습니다. 모든 변수는 계산을 지원하는 데이터형을 가져야 합니다. 자세한 내용은 Direct Calculations on Tables and Timetables 항목을 참조하십시오.
R2022a: 우선 순위 결정 동작 제어
TieBreaker
이름-값 인수를 사용하여 우선 순위 결정 방법을 지정합니다. 예를 들어 round(X,TieBreaker="tozero")
는 반올림 경계에 놓인 숫자를 0에 가까운 방향으로 반올림합니다.
R2022a: round
는 반올림 경계에 놓인 숫자에 대해 일관된 결과를 반환함
R2022a부터 round
함수는 기본적으로 항상 경계에 놓인 숫자를 0에서 더 멀리 떨어진, 즉 크기가 더 큰 가장 가까운 10—N의 배수로 반올림합니다. 예를 들어, 다음과 같습니다.
X = 1.015:5.015; N = 2; Y = round(1.015:5.015,2)
Y = 1.0200 2.0200 3.0200 4.0200 5.0200
이전 릴리스에서는 기본적으로 round
함수가 경계에 놓인 숫자에 대해 일관되지 않은 결과를 반환하는 경우가 있었습니다. 예를 들면 앞의 예시에서 두 번째 요소와 세 번째 요소는 0에 더 가까운 2.01
및 3.01
로 각각 반올림되었습니다.
R2014b: 지정된 자릿수로 반올림
R2014b에서는 임의 소수 자릿수나 유효 자릿수로 반올림할 수 있고 duration형 값을 반올림할 수 있도록 다음과 같은 구문이 추가되었습니다.
Y = round(X,N) Y = round(X,N,type) Y = round(t) Y = round(t,unit)
그 이전 MATLAB® 버전에서는 가장 가까운 정수로 반올림하는 다음 구문만 지원합니다.
Y = round(X)
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)