Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Decimal.Remainder() 메서드 완벽 정리 – 두 Decimal 값 나눗셈의 나머지 구하기

C#의 Decimal.Remainder() 메서드는 두 Decimal 값으로 나눗셈을 수행한 뒤, 그 결과의 나머지를 계산하는 데 사용됩니다. 일반적인 정수 나눗셈에서 사용하는 % 연산자와 유사한 역할을 하지만, Decimal 타입의 높은 정밀도를 그대로 유지한다는 점이 특징입니다.

구문(Syntax)

Decimal.Remainder() 메서드의 기본 구문은 다음과 같습니다.

public static decimal Remainder (decimal val1, decimal val2);

여기서 val1은 피제수(나누어지는 수), val2는 제수(나누는 수)를 의미합니다.

주요 특징

  • 반환값은 val1을 val2로 나눈 나머지이며, 부호는 항상 피제수(val1)의 부호를 따릅니다.
  • 제수(val2)가 0이면 DivideByZeroException이 발생하므로 사전에 값 검증이 필요합니다.
  • Decimal 타입의 정밀도를 유지하므로 금융 계산 등 소수점 오차에 민감한 작업에 적합합니다.

예제 1

다음은 Decimal.Remainder() 메서드를 실제로 구현한 첫 번째 예제입니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 45.15m;
        Decimal val2 = 15.15m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("After Division = "+(Decimal.Divide(val1,val2)));
        Console.WriteLine("Remainder = "+(Decimal.Remainder(val1,val2)));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Decimal 1 = 45.15
Decimal 2 = 15.15
After Division = 2.9801980198019801980198019802
Remainder = 14.85

출력에서 확인할 수 있듯이, 45.15를 15.15로 나눈 몫은 약 2.98이며, 나머지는 14.85로 정확하게 계산됩니다.

예제 2

이번에는 두 값이 동일한 경우의 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 1.00m;
        Decimal val2 = 1.00m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("After Division = "+(Decimal.Divide(val1,val2)));
        Console.WriteLine("Remainder = "+(Decimal.Remainder(val1,val2)));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Decimal 1 = 1.00
Decimal 2 = 1.00
After Division = 1
Remainder = 0.00

두 값이 같으면 나눗셈의 결과가 1이 되고, 나머지는 자연스럽게 0.00이 됩니다.

정리

Decimal.Remainder() 메서드는 Decimal 타입 간 나눗셈의 나머지를 정확하게 구해야 할 때 유용합니다. 특히 소수점 이하 정밀도가 중요한 회계·금융 도메인에서 % 연산자 대신 이 메서드를 활용하면 예측 가능하고 안정적인 결과를 얻을 수 있습니다.