다음을 통해 공유


Mod 연산자(Visual Basic)

업데이트: 2007년 11월

두 숫자를 나누고 나머지만 반환합니다.

number1 Mod number2

구성 요소

  • number1
    필수 요소. 임의의 숫자 식입니다.

  • number2
    필수 요소. 임의의 숫자 식입니다.

지원 형식

모든 숫자 데이터 형식입니다. 여기에는 부호 없는 형식, 부동 소수점 형식 및 Decimal이 포함됩니다.

결과

결과는 number1을 number2로 나눈 나머지입니다. 예를 들어 14 Mod 4 식의 계산 결과는 2입니다.

설명

number1 또는 number2가 부동 소수점 값이면 나눗셈의 부동 소수점 나머지가 반환됩니다. 결과의 데이터 형식은 number1 및 number2의 데이터 형식으로 나눈 결과의 모든 가능한 값을 가질 수 있는 가장 작은 데이터 형식입니다.

number1 또는 number2가 Nothing이면 0으로 처리됩니다.

관련 연산자는 다음과 같습니다.

  • \ 연산자(Visual Basic)는 나눗셈의 정수 몫을 반환합니다. 예를 들어 14 \ 4 식의 계산 결과는 3입니다.

  • / 연산자(Visual Basic)는 나머지를 부동 소수점 숫자로 포함한 전체 몫을 반환합니다. 예를 들어 14 / 4 식의 계산 결과는 3.5입니다.

0으로 나누기

number2가 0으로 계산되면 Mod 연산자의 동작은 피연산자의 데이터 형식에 따라 달라집니다. 정수 나누기는 DivideByZeroException 예외를 throw합니다. 부동 소수점 나누기는 NaN을 반환합니다.

동등 수식

a Mod b 식은 다음 수식과 동등합니다.

a - (b * (a \ b))

a - (b * Fix(a / b))

부동 소수점 부정확성

부동 소수점 숫자에 대한 작업을 수행하는 경우 해당 숫자가 메모리에서 항상 정확하게 표현되지 않는다는 점에 주의합니다. 따라서 값 비교, Mod 연산자 등과 같은 특정 연산에서 예기치 않은 결과가 나타날 수 있습니다. 자세한 내용은 데이터 형식 문제 해결을 참조하십시오.

오버로딩

Mod 연산자는 오버로드될 수 있습니다. 즉, 클래스나 구조체에서 해당 동작을 다시 정의할 수 있습니다. 코드에서 Mod를 이러한 오버로드가 포함된 클래스나 구조체의 인스턴스에 적용하는 경우 다시 정의된 동작을 알고 있어야 합니다. 자세한 내용은 연산자 프로시저를 참조하십시오.

예제

다음 예제에서는 Mod 연산자를 사용하여 두 숫자를 나누고 나머지만 반환합니다. 두 숫자 중 어느 하나가 부동 소수점 숫자인 경우, 결과는 나머지를 나타내는 부동 소수점 숫자입니다.

Dim testResult As Double
testResult = 10 Mod 5
testResult = 10 Mod 3
testResult = 12 Mod 4.3
testResult = 12.6 Mod 5
testResult = 47.9 Mod 9.35

위의 예제에서 식은 0, 1, 3.4, 2.6 및 1.15 값을 반환합니다.

다음 예제에서는 부동 소수점 피연산자의 잠재적인 부정확성에 대해 설명합니다. 첫 번째 문에서 피연산자는 Double이고 0.2는 저장된 값이 0.20000000000000001인 무한 반복되는 이진 소수입니다. 두 번째 문에서 리터럴 형식 문자 D는 두 피연산자를 모두 Decimal로 강제하며 0.2는 정확한 표시를 가집니다.

firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.

참고 항목

작업

데이터 형식 문제 해결

개념

Visual Basic의 산술 연산자

참조

산술 연산자(Visual Basic)

Visual Basic에서의 연산자 우선 순위

기능별 연산자 목록

Int, Fix 함수(Visual Basic)

\ 연산자(Visual Basic)