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_FRACTION
CY_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_FRACTION
은 CY_MAX_FRACTION
CY_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
, ulSrc
usSrc
멤버 변수 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_FRACTION
CY_MAX_FRACTION
) 사이의 4자리 정수 값입니다. GetFraction
는 10000(CY_SCALE
)으로 확장된 이 값을 반환합니다. 의 CY_MAX_FRACTION
값CY_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
, dSrc
cSrc
, ulSrc
dSrc
개체에 할당할 숫자 값입니다 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_FRACTION
CY_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);