Decimal.Divide() 메서드란?
C#의 Decimal.Divide() 메서드는 지정된 두 개의 Decimal 값을 나누는 데 사용되는 정적(static) 메서드입니다. 높은 정밀도가 요구되는 금융 계산 등에서 부동소수점 오차 없이 안정적으로 나눗셈 연산을 수행할 때 유용하게 활용됩니다.
구문(Syntax)
Decimal.Divide() 메서드의 기본 구문은 다음과 같습니다.
public static decimal Divide (decimal val1, decimal val2);
여기서 val1은 피제수(나누어지는 값)이며, val2는 제수(나누는 값)입니다. 반환값은 두 Decimal 값을 나눈 결과인 decimal 타입입니다.
예제 1 - 서로 다른 값 나누기
먼저 Decimal.Divide() 메서드를 활용한 기본 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val1 = 65.15m;
Decimal val2 = 5.15m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
Console.WriteLine("After Division = "+(Decimal.Divide(val1,val2)));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Decimal 1 = 65.15 Decimal 2 = 5.15 After Division = 12.650485436893203883495145631
출력에서 볼 수 있듯이, decimal 타입은 매우 높은 정밀도(최대 28~29자리 유효 숫자)를 제공하기 때문에 소수점 이하 결과까지 상세하게 표현됩니다.
예제 2 - 동일한 값 나누기
이번에는 같은 값을 나누는 경우의 동작을 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val1 = 1.0m;
Decimal val2 = 1.0m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
Console.WriteLine("After Division = "+(Decimal.Divide(val1,val2)));
}
}출력 결과
실행 결과는 다음과 같습니다.
Decimal 1 = 1.0 Decimal 2 = 1.0 After Division = 1
사용 시 주의 사항
Decimal.Divide() 메서드를 사용할 때 제수(val2)가 0이면 DivideByZeroException이 발생합니다. 따라서 실무 코드에서는 나누기 전에 제수가 0인지 검사하거나 try-catch 블록으로 예외를 처리하는 것이 좋습니다.