C#의 Decimal.Negate() 메서드는 지정된 Decimal 값에 -1을 곱한 결과, 즉 부호가 반전된 값을 반환하는 정적(static) 메서드입니다. 양수는 음수로, 음수는 양수로 변환할 때 유용하게 사용됩니다.
문법(Syntax)
Decimal.Negate() 메서드의 기본 문법은 다음과 같습니다.
public static decimal Negate (decimal val);
여기서 매개변수 val은 부호를 반전시킬 대상 Decimal 값입니다.
예제 1
첫 번째 예제를 통해 Decimal.Negate() 메서드의 동작을 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val = 3972.491M;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
TypeCode type = val.GetTypeCode();
Console.WriteLine("TypeCode = "+type);
Decimal res = Decimal.Negate(val);
Console.WriteLine("Negative (Decimal) = "+res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Decimal Value = 3972.491 HashCode = 620041307 TypeCode = Decimal Negative (Decimal) = -3972.491
양수였던 3972.491이 Negate() 메서드를 통해 음수인 -3972.491로 변환된 것을 확인할 수 있습니다.
예제 2
이번에는 음수 값에 Negate() 메서드를 적용해 보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val = -29.35m;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
TypeCode type = val.GetTypeCode();
Console.WriteLine("TypeCode = "+type);
Decimal res = Decimal.Negate(val);
Console.WriteLine("Negative (Decimal) = "+res);
}
}출력 결과
위 코드의 실행 결과는 다음과 같습니다.
Decimal Value = -29.35 HashCode = 1503969289 TypeCode = Decimal Negative (Decimal) = 29.35
음수였던 -29.35가 양수인 29.35로 반전되어 반환되었습니다.
핵심 정리
- Decimal.Negate()는 전달받은 값의 부호를 반전하여 새로운 Decimal 값을 반환합니다.
- 원본 값(val)은 변경되지 않으며, 결과는 별도의 변수에 저장해야 합니다.
- 0(Zero)에 적용하면 부호 없는 0이 그대로 반환됩니다.
- 단순히 -1을 곱하는 것과 동일한 효과를 내지만, 가독성과 의도 전달 측면에서 메서드 사용이 권장됩니다.