다음을 통해 공유


CComCurrency 수업

CComCurrency 에는 개체를 만들고 관리하기 위한 메서드와 연산자가 있습니다 CURRENCY .

구문

class CComCurrency;

멤버

Public 생성자

속성 설명
CComCurrency::CComCurrency CComCurrency 개체에 대한 생성자입니다.

공용 메서드

이름 설명
CComCurrency::GetCurrencyPtr m_currency 데이터 멤버의 주소를 반환합니다.
CComCurrency::GetFraction CComCurrency 개체의 소수 부분을 반환하려면 이 메서드를 호출합니다.
CComCurrency::GetInteger CComCurrency 개체의 정수 부분을 반환하려면 이 메서드를 호출합니다.
CComCurrency::Round CComCurrency 개체를 가장 가까운 정수 값으로 반올림하려면 이 메서드를 호출합니다.
CComCurrency::SetFraction CComCurrency 개체의 소수 부분을 설정하려면 이 메서드를 호출합니다.
CComCurrency::SetInteger CComCurrency 개체의 정수 부분을 설정하려면 이 메서드를 호출합니다.

Public 연산자

속성 설명
CComCurrency::operator - 이 연산자는 CComCurrency 개체에 대해 빼기를 수행하는 데 사용됩니다.
CComCurrency::operator != CComCurrency 개체가 다른지 비교합니다.
CComCurrency::operator * 이 연산자는 CComCurrency 개체에 대해 곱하기를 수행하는 데 사용됩니다.
CComCurrency::operator *= 이 연산자는 CComCurrency 개체에 대해 곱하기를 수행하고 결과를 할당하는 데 사용됩니다.
CComCurrency::operator / 이 연산자는 CComCurrency 개체에 대해 나누기를 수행하는 데 사용됩니다.
CComCurrency::operator /= 이 연산자는 CComCurrency 개체에 대해 나누기를 수행하고 결과를 할당하는 데 사용됩니다.
CComCurrency::operator + 이 연산자는 CComCurrency 개체에 대해 더하기를 수행하는 데 사용됩니다.
CComCurrency::operator += 이 연산자는 CComCurrency 개체에 대해 더하기를 수행하고 결과를 현재 개체에 할당하는 데 사용됩니다.
CComCurrency::operator < 이 연산자는 두 CComCurrency 개체를 비교하여 더 작은 값을 확인합니다.
CComCurrency::operator <= 이 연산자는 두 CComCurrency 개체를 비교하여 더 작거나 같은 값을 확인합니다.
CComCurrency::operator = 다음 연산자는 CComCurrency 개체에 새 값을 할당합니다.
CComCurrency::operator -= 이 연산자는 CComCurrency 개체에 대해 빼기를 수행하고 결과를 할당하는 데 사용됩니다.
CComCurrency::operator == 이 연산자는 두 CComCurrency 개체가 같은지 비교합니다.
CComCurrency::operator > 이 연산자는 두 CComCurrency 개체를 비교하여 더 큰 값을 확인합니다.
CComCurrency::operator >= 이 연산자는 두 CComCurrency 개체를 비교하여 더 크거나 같은 값을 확인합니다.
CComCurrency::operator CURRENCY 개체를 캐스팅 CURRENCY 합니다.

공용 데이터 멤버

속성 설명
CComCurrency::m_currency CURRENCY 클래스 인스턴스에서 만든 변수입니다.

설명

CComCurrency 는 데이터 형식에 대한 래퍼입니다 CURRENCY . CURRENCY 는 10,000으로 크기가 조정된 8 바이트 2의 보수 정수 값으로 구현됩니다. 이 크기 조정은 소수점 왼쪽에 15자리, 오른쪽에 4자리의 고정 소수점 숫자를 제공합니다. 데이터 형식은 CURRENCY 돈과 관련된 계산이나 정확도가 중요한 고정 소수점 계산에 유용합니다.

래퍼는 이 CComCurrency 고정 소수점 형식에 대한 산술, 할당 및 비교 작업을 구현합니다. 지원되는 애플리케이션은 고정 소수점 계산 시 발생할 수 있는 반올림 오류를 제어하도록 선택했습니다.

이 개체는 CComCurrency 소수점 왼쪽에 값을 저장하는 정수 구성 요소와 소수점 오른쪽에 값을 저장하는 소수점 구성 요소의 두 구성 요소 형식으로 소수점 양쪽의 숫자에 액세스할 수 있습니다. 소수점 구성 요소는 내부적으로 -9999()에서 +9999(CY_MIN_FRACTIONCY_MAX_FRACTION) 사이의 정수 값으로 저장됩니다. 이 메서드 CComCurrency::GetFraction 는 10000(CY_SCALE)의 배율로 조정된 값을 반환합니다.

개체의 CComCurrency 정수 및 소수 구성 요소를 지정할 때 소수 구성 요소는 0에서 9999까지의 숫자입니다. 이 고려 사항은 미국 달러와 같은 통화를 처리할 때 중요합니다. 달러 금액은 일반적으로 소수점 이후 두 개의 유효 자릿수만 사용하여 표현됩니다. 마지막 두 자리가 표시되지 않더라도 고려해야 합니다.

가능한 CComCurrency 할당
$10.50 CComCurrency(10,5000) 또는 CComCurrency(10.50)
$10.05 CComCurrency(10,500) 또는 CComCurrency(10.05)

CY_MIN_FRACTIONCY_MAX_FRACTIONCY_SCALE atlcur.h에 정의됩니다.

요구 사항

헤더: atlcur.h

CComCurrency::CComCurrency

생성자입니다.

CComCurrency() throw();
CComCurrency(const CComCurrency& curSrc) throw();
CComCurrency(CURRENCY cySrc) throw();
CComCurrency(DECIMAL dSrc);
CComCurrency(ULONG ulSrc);
CComCurrency(USHORT usSrc);
CComCurrency(CHAR cSrc);
CComCurrency(DOUBLE dSrc);
CComCurrency(FLOAT fSrc);
CComCurrency(LONG lSrc);
CComCurrency(SHORT sSrc);
CComCurrency(BYTE bSrc);
CComCurrency(LONGLONG nInteger, SHORT nFraction);
explicit CComCurrency(LPDISPATCH pDispSrc);
explicit CComCurrency(const VARIANT& varSrc);
explicit CComCurrency(LPCWSTR szSrc);
explicit CComCurrency(LPCSTR szSrc);

매개 변수

curSrc
기존 CComCurrency 개체입니다.

cySrc
CURRENCY 형식의 변수입니다.

bSrc, dSrc, fSrc, lSrc, sSrc, ulSrcusSrc
멤버 변수 m_currency에 지정된 초기 값입니다.

cSrc
멤버 변수 m_currency에 지정된 초기 값을 포함하는 문자입니다.

nInteger, nFraction
초기 통화 값의 정수 및 소수 구성 요소입니다. 자세한 내용은 개요를 참조하세요 CComCurrency .

pDispSrc
포인터입니다 IDispatch .

varSrc
VARIANT 형식의 변수입니다. 현재 스레드의 로캘은 변환을 수행하는 데 사용됩니다.

szSrc
초기 값을 포함하는 유니코드 또는 ANSI 문자열입니다. 현재 스레드의 로캘은 변환을 수행하는 데 사용됩니다.

설명

생성자는 초기 값을 CComCurrency::m_currency설정하고 정수, 문자열, 부동 소수점 숫자 CURRENCY , 변수 및 기타 CComCurrency 개체를 비롯한 광범위한 데이터 형식을 허용합니다. 값이 제공되지 m_currency 않으면 0으로 설정됩니다.

오버플로와 같은 오류가 있는 경우 오류를 설명하는 빈 예외 사양(throw()) 호출 AtlThrow HRESULT 이 없는 생성자입니다.

부동 소수점 또는 이중 값을 사용하여 값을 할당할 때는 해당 값이 아니라 CComCurrency(10,50)동일해야 CComCurrency(10.50) 합니다CComCurrency(10,5000).

CComCurrency::GetCurrencyPtr

m_currency 데이터 멤버의 주소를 반환합니다.

CURRENCY* GetCurrencyPtr() throw();

반환 값

데이터 멤버의 주소를 반환합니다 m_currency .

CComCurrency::GetFraction

개체의 소수 구성 요소를 반환하려면 이 메서드를 호출합니다 CComCurrency .

SHORT GetFraction() const;

반환 값

데이터 멤버의 소수 구성 요소를 반환합니다 m_currency .

설명

소수점 구성 요소는 -9999()에서 +9999(CY_MIN_FRACTIONCY_MAX_FRACTION) 사이의 4자리 정수 값입니다. GetFraction 는 10000(CY_SCALE)으로 확장된 이 값을 반환합니다. 의 CY_MAX_FRACTIONCY_MIN_FRACTION이며 CY_SCALE atlcur.h에 정의됩니다.

예시

CComCurrency cur(10, 5000);
int nFract;
nFract = cur.GetFraction();
ATLASSERT(nFract == 5000);   

CComCurrency::GetInteger

개체의 정수 구성 요소를 얻으려면 이 메서드를 CComCurrency 호출합니다.

LONGLONG GetInteger() const;

반환 값

데이터 멤버의 정수 구성 요소를 반환합니다 m_currency .

예시

CComCurrency cur(10, 5000);
LONGLONG nInteger;
nInteger = cur.GetInteger();
ATLASSERT(nInteger == 10);   

CComCurrency::m_currency

데이터 멤버입니다 CURRENCY .

CURRENCY m_currency;

설명

이 멤버는 이 클래스의 메서드에 의해 액세스되고 조작된 통화를 보유합니다.

CComCurrency::operator -

이 연산자는 CComCurrency 개체에 대해 빼기를 수행하는 데 사용됩니다.

CComCurrency operator-() const;
CComCurrency operator-(const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 개체입니다.

반환 값

CComCurrency 빼기 결과를 나타내는 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur1(10, 5000), cur2;
cur2 = cur1 - CComCurrency(4, 5000);
ATLASSERT(cur2 == CComCurrency(6, 0));   

CComCurrency::operator !=

이 연산자는 같지 않은 두 개체를 비교합니다.

bool operator!= (const CComCurrency& cur) const;

매개 변수

cur
비교할 CComCurrency 개체입니다.

반환 값

비교할 항목이 개체와 같지 CComCurrency 않으면 반환 TRUE 하고, FALSE그렇지 않으면 반환합니다.

예시

CComCurrency cur1(10, 5000), cur2(10, 5001);
ATLASSERT(cur1 != cur2);   

CComCurrency::operator *

이 연산자는 CComCurrency 개체에 대해 곱하기를 수행하는 데 사용됩니다.

CComCurrency operator*(long nOperand) const;
CComCurrency operator*(const CComCurrency& cur) const;

매개 변수

nOperand
승수입니다.

cur
CComCurrency 승수로 사용되는 개체입니다.

반환 값

CComCurrency 곱하기 결과를 나타내는 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur1(10, 5000), cur2;
cur2 = cur1 * 2;
ATLASSERT(cur2 == CComCurrency(21, 0));   

CComCurrency::operator *=

이 연산자는 CComCurrency 개체에 대해 곱하기를 수행하고 결과를 할당하는 데 사용됩니다.

const CComCurrency& operator*= (long nOperand);
const CComCurrency& operator*= (const CComCurrency& cur);

매개 변수

nOperand
승수입니다.

cur
CComCurrency 승수로 사용되는 개체입니다.

반환 값

업데이트 CComCurrency 된 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur(10, 5000);
cur *= 2;
ATLASSERT(cur == CComCurrency(21, 0));   

CComCurrency::operator /

이 연산자는 CComCurrency 개체에 대해 나누기를 수행하는 데 사용됩니다.

CComCurrency operator/(long nOperand) const;

매개 변수

nOperand
제수입니다.

반환 값

나누기 CComCurrency 결과를 나타내는 개체를 반환합니다. 수자가 0이면 어설션 실패가 발생합니다.

예시

CComCurrency cur1(10, 5000), cur2;
cur2 = cur1 / 10;
ATLASSERT(cur2 == CComCurrency(1, 500));

CComCurrency::operator /=

이 연산자는 CComCurrency 개체에 대해 나누기를 수행하고 결과를 할당하는 데 사용됩니다.

const CComCurrency& operator/= (long nOperand);

매개 변수

nOperand
제수입니다.

반환 값

업데이트 CComCurrency 된 개체를 반환합니다. 수자가 0이면 어설션 실패가 발생합니다.

예시

CComCurrency cur(10, 5000);
cur /= 10;
ATLASSERT(cur == CComCurrency(1, 500));

CComCurrency::operator +

이 연산자는 CComCurrency 개체에 대해 더하기를 수행하는 데 사용됩니다.

CComCurrency operator+(const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 원래 개체에 추가할 개체입니다.

반환 값

CComCurrency 추가 결과를 나타내는 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur1(10, 5000), cur2;
cur2 = cur1 + CComCurrency(4, 5000);
ATLASSERT(cur2 == CComCurrency(15, 0));

CComCurrency::operator +=

이 연산자는 CComCurrency 개체에 대해 더하기를 수행하고 결과를 현재 개체에 할당하는 데 사용됩니다.

const CComCurrency& operator+= (const CComCurrency& cur);

매개 변수

cur
CComCurrency 개체

반환 값

업데이트 CComCurrency 된 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur(10, 2500);
cur += CComCurrency(4, 2500);
ATLASSERT(cur == CComCurrency(14, 5000));

CComCurrency::operator <

이 연산자는 두 CComCurrency 개체를 비교하여 더 작은 값을 확인합니다.

bool operator<(const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 개체입니다.

반환 값

첫 번째 개체가 두 번째 개체보다 작으면 반환하고, FALSE 그렇지 않으면 반환 TRUE 합니다.

예시

CComCurrency cur1(10, 4900);
CComCurrency cur2(10, 5000);
ATLASSERT(cur1 < cur2);

CComCurrency::operator <=

이 연산자는 두 CComCurrency 개체를 비교하여 더 작거나 같은 값을 확인합니다.

bool operator<= (const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 개체입니다.

반환 값

첫 번째 개체가 두 번째 개체보다 작거나 같으면 반환하고, FALSE 그렇지 않으면 반환 TRUE 합니다.

예시

CComCurrency cur1(10, 4900);
CComCurrency cur2(10, 5000);
ATLASSERT(cur1 <= cur2);

CComCurrency::operator =

다음 연산자는 CComCurrency 개체에 새 값을 할당합니다.

const CComCurrency& operator= (const CComCurrency& curSrc) throw();
const CComCurrency& operator= (CURRENCY cySrc) throw();
const CComCurrency& operator= (FLOAT fSrc);
const CComCurrency& operator= (SHORT sSrc);
const CComCurrency& operator= (LONG lSrc);
const CComCurrency& operator= (BYTE bSrc);
const CComCurrency& operator= (USHORT usSrc);
const CComCurrency& operator= (DOUBLE dSrc);
const CComCurrency& operator= (CHAR cSrc);
const CComCurrency& operator= (ULONG ulSrc);
const CComCurrency& operator= (DECIMAL dSrc);

매개 변수

curSrc
CComCurrency 개체입니다.

cySrc
CURRENCY 형식의 변수입니다.

sSrc,fSrc, lSrc, bSrc, usSrc, dSrccSrc, ulSrcdSrc
개체에 할당할 숫자 값입니다 CComCurrency .

반환 값

업데이트 CComCurrency 된 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur1, cur2(10, 5000);
CURRENCY cy;

// Copying one object to another 
cur1 = cur2;

// Using the CURRENCY data type
cy.int64 = 105000;
cur1 = cy;

ATLASSERT(cur1 == cur2);

CComCurrency::operator -=

이 연산자는 CComCurrency 개체에 대해 빼기를 수행하고 결과를 할당하는 데 사용됩니다.

const CComCurrency& operator-= (const CComCurrency& cur);

매개 변수

cur
CComCurrency 개체입니다.

반환 값

업데이트 CComCurrency 된 개체를 반환합니다. 오버플로와 같은 오류가 있는 경우 이 연산자는 AtlThrow 오류를 설명하는 호출 HRESULT 을 수행합니다.

예시

CComCurrency cur(10, 5000);
cur -= CComCurrency(4, 5000);
ATLASSERT(cur == CComCurrency(6, 0));

CComCurrency::operator ==

이 연산자는 두 CComCurrency 개체가 같은지 비교합니다.

bool operator== (const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 비교할 개체입니다.

반환 값

TRUE 개체가 같은 경우(즉, 두 개체의 m_currency 정수 및 소수점 모두 데이터 멤버의 값이 같음) FALSE 반환합니다.

예시

CComCurrency cur1(10, 5000), cur2;
cur2 = cur1;
ATLASSERT(cur1 == cur2);

CComCurrency::operator >

이 연산자는 두 CComCurrency 개체를 비교하여 더 큰 값을 확인합니다.

bool operator>(const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 개체입니다.

반환 값

첫 번째 개체가 두 번째 개체보다 크면 반환하고, FALSE 그렇지 않으면 반환 TRUE 합니다.

예시

CComCurrency cur1(10, 5100);
CComCurrency cur2(10, 5000);
ATLASSERT(cur1 > cur2);

CComCurrency::operator >=

이 연산자는 두 CComCurrency 개체를 비교하여 더 크거나 같은 값을 확인합니다.

bool operator>= (const CComCurrency& cur) const;

매개 변수

cur
CComCurrency 개체입니다.

반환 값

첫 번째 개체가 두 번째 개체보다 크거나 같은 경우를 반환하고, FALSE 그렇지 않으면 반환 TRUE 합니다.

예시

CComCurrency cur1(10, 5100);
CComCurrency cur2(10, 5000);
ATLASSERT(cur1 >= cur2);

CComCurrency::operator CURRENCY

이러한 연산자는 개체를 데이터 형식으로 CComCurrency CURRENCY 캐스팅하는 데 사용됩니다.

operator CURRENCY&() throw();
operator const CURRENCY&() const throw();

반환 값

개체에 대한 참조를 CURRENCY 반환합니다.

예시

CComCurrency cur(10, 5000);
CURRENCY cy = static_cast<CURRENCY>(cur); // Note that explicit cast is not necessary
ATLASSERT(cy.int64 == 105000);

CComCurrency::Round

이 메서드를 호출하여 통화를 지정된 소수 자릿수로 반올림합니다.

HRESULT Roundint nDecimals);

매개 변수

nDecimals
0에서 m_currency 4까지의 반올림할 자릿수입니다.

반환 값

성공 또는 오류 오류를 HRESULT 반환 S_OK 합니다.

예시

CComCurrency cur(10, 1234);
cur.Round(3);
ATLASSERT(cur.GetFraction() == 1230);   

CComCurrency::SetFraction

CComCurrency 개체의 소수 부분을 설정하려면 이 메서드를 호출합니다.

HRESULT SetFraction(SHORT nFraction);

매개 변수

nFraction
데이터 멤버의 m_currency 소수 구성 요소에 할당할 값입니다. 소수 구성 요소의 부호는 정수 구성 요소와 동일해야 하며 값은 -9999()에서 +9999(CY_MIN_FRACTIONCY_MAX_FRACTION) 범위여야 합니다.

반환 값

성공 또는 오류 오류를 HRESULT 반환 S_OK 합니다.

예시

CComCurrency cur(10, 0);
cur.SetFraction(5000);
ATLASSERT(CComCurrency(10, 5000) == cur);   

CComCurrency::SetInteger

CComCurrency 개체의 정수 부분을 설정하려면 이 메서드를 호출합니다.

HRESULT SetInteger(LONGLONG nInteger);

매개 변수

nInteger
데이터 멤버의 m_currency 정수 구성 요소에 할당할 값입니다. 정수 구성 요소의 부호는 기존 소수 구성 요소의 부호와 일치해야 합니다.

nInteger 은 (포함) 범위 CY_MIN_INTEGER CY_MAX_INTEGER안에 있어야 합니다. 이러한 값은 atlcur.h에 정의됩니다.

반환 값

성공 또는 오류 오류를 HRESULT 반환 S_OK 합니다.

예시

CComCurrency cur(0, 5000);
cur.SetInteger(10);
ATLASSERT(CComCurrency(10, 5000) == cur);   

참고 항목

COleCurrency 클래스
CURRENCY
클래스 개요