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

C#의 Math.IEEERemainder() 메서드 완벽 정리

C#의 Math.IEEERemainder() 메서드는 지정된 숫자(피제수)를 다른 숫자(제수)로 나눈 나머지를 IEEE 754 표준에 따라 반환합니다.

일반적인 나머지 연산자(%)와 달리, 이 메서드는 몫이 가장 가까운 정수가 되도록 계산한 후 나머지를 구한다는 점이 특징입니다. 그 결과 나머지 값은 제수의 절반을 초과하지 않으며 음수가 될 수도 있습니다.

구문

public static double IEEERemainder(double dividend, double divisor);
  • dividend: 피제수 (나누어지는 값)
  • divisor: 제수 (나누는 값)

예를 들어 90을 7로 나누면 몫은 약 12.86이며, 가장 가까운 정수인 13으로 반올림됩니다. 13 × 7 = 91이므로 나머지는 90 − 91 = -1이 됩니다.

Math.IEEERemainder() 사용 예제

다음은 Math.IEEERemainder() 메서드를 구현한 첫 번째 예제입니다.

예제 1

using System;

public class Demo {
    public static void Main() {
        double val1 = 90;
        double val2 = 7;

        // IEEE Remainder 계산
        var rem = Math.IEEERemainder(val1, val2);
        Console.WriteLine(rem);
    }
}

출력 결과

-1

위 예제에서 90을 7로 나눌 때 가장 가까운 몫은 13이므로, 결과값이 일반적인 나머지와 다른 -1이 출력되는 것을 확인할 수 있습니다.

예제 2

이번에는 제수를 0으로 설정한 경우를 살펴보겠습니다.

using System;

public class Demo {
    public static void Main() {
        double val1 = 1;
        double val2 = 0;

        // IEEE Remainder 계산
        var rem = Math.IEEERemainder(val1, val2);
        Console.WriteLine(rem);
    }
}

출력 결과

NaN

0으로 나누는 것은 수학적으로 정의되지 않기 때문에, 두 번째 예제에서는 유효한 숫자가 아님을 의미하는 NaN(Not a Number)이 출력됩니다.

정리

Math.IEEERemainder() 메서드는 IEEE 754 부동 소수점 표준에 맞춰 나머지를 계산하므로, 정밀한 수학 연산이 필요한 과학 및 공학 분야의 코드에서 유용하게 활용할 수 있습니다. 단, 제수가 0이면 NaN을 반환하므로 입력값 검증에 유의해야 합니다.