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

C# Decimal.ToOACurrency() 메서드 – Decimal 값을 OLE 통화 값으로 변환하기

C#의 Decimal.ToOACurrency() 메서드는 지정된 Decimal(10진수) 값을 OLE 자동화(OA) 통화 값에 해당하는 64비트 부호 있는 정수(long)로 변환하는 데 사용됩니다.

OLE 자동화 통화 형식은 금액을 고정 소수점 방식으로 표현하며, 원래 값에 10,000을 곱한 형태로 저장됩니다. 따라서 소수점 이하 네 자리까지의 화폐 값을 손실 없이 정수로 다룰 수 있습니다.

구문

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

public static long ToOACurrency(decimal val);

여기서 val은 변환할 decimal 숫자입니다. 이 메서드는 정적(static) 메서드이므로 Decimal 형식의 인스턴스 없이 직접 호출할 수 있으며, 변환된 결과를 long 타입으로 반환합니다.

예제 1: 정수형 Decimal 값 변환

먼저 간단한 정수형 Decimal 값을 변환하는 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val = 95;
        Console.WriteLine("Decimal 값 = " + val);
        long res = Decimal.ToOACurrency(val);
        Console.WriteLine("Long 값 = " + res);
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Decimal 값 = 95
Long 값 = 950000

출력 결과에서 볼 수 있듯이, 값 95는 OLE 통화 형식으로 변환되면서 10,000배가 되어 950000이 반환됩니다.

예제 2: 소수점이 포함된 Decimal 값 변환

이번에는 소수점 아래 자릿수가 있는 Decimal 값을 변환해 보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val = 9587.567m;
        Console.WriteLine("Decimal 값 = " + val);
        long res = Decimal.ToOACurrency(val);
        Console.WriteLine("Long 값 = " + res);
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Decimal 값 = 9587.567
Long 값 = 95875670

소수점이 포함된 값도 정확하게 변환되는 것을 확인할 수 있습니다. 즉, 9587.567 × 10,000 = 95875670이 반환됩니다.

정리

Decimal.ToOACurrency() 메서드는 COM 연동이나 Excel 등 OLE 자동화를 지원하는 애플리케이션과 금액 데이터를 주고받을 때 유용하게 활용됩니다. 반대 방향의 변환이 필요한 경우 Decimal.FromOACurrency() 메서드를 사용하면 됩니다.