Sdílet prostřednictvím


CComCurrency Třída

CComCurrency obsahuje metody a operátory pro vytváření a správu objektu CURRENCY .

Syntaxe

class CComCurrency;

Členové

Veřejné konstruktory

Název Popis
CComCurrency::CComCurrency Konstruktor objektu CComCurrency .

Veřejné metody

Název Popis
CComCurrency::GetCurrencyPtr Vrátí adresu datového člena m_currency .
CComCurrency::GetFraction Voláním této metody vrátíte zlomkovou komponentu objektu CComCurrency .
CComCurrency::GetInteger Voláním této metody vrátí celočíselnou komponentu objektu CComCurrency .
CComCurrency::Round Voláním této metody zaokrouhlíte CComCurrency objekt na nejbližší celočíselnou hodnotu.
CComCurrency::SetFraction Voláním této metody nastavíte zlomkovou komponentu objektu CComCurrency .
CComCurrency::SetInteger Voláním této metody nastavíte celočíselnou komponentu objektu CComCurrency .

Veřejné operátory

Název Popis
CComCurrency::operator - Tento operátor slouží k provádění odčítání objektu CComCurrency .
CComCurrency::operator != Porovná dva CComCurrency objekty pro nerovnost.
CComCurrency::operator * Tento operátor slouží k provádění násobení objektu CComCurrency .
CComCurrency::operator *= Tento operátor slouží k provádění násobení objektu CComCurrency a přiřazení výsledku.
CComCurrency::operator / Tento operátor slouží k dělení objektu CComCurrency .
CComCurrency::operator /= Tento operátor slouží k provedení dělení objektu CComCurrency a přiřazení výsledku.
CComCurrency::operator + Tento operátor slouží k přidání objektu CComCurrency .
CComCurrency::operator += Tento operátor slouží k provádění sčítání objektu CComCurrency a přiřazení výsledku k aktuálnímu objektu.
CComCurrency::operator < Tento operátor porovnává dva CComCurrency objekty, aby určil menší.
CComCurrency::operator <= Tento operátor porovnává dva CComCurrency objekty k určení rovnosti nebo menší.
CComCurrency::operator = Tento operátor přiřadí CComCurrency objekt nové hodnotě.
CComCurrency::operator -= Tento operátor slouží k provádění odčítání objektu CComCurrency a přiřazení výsledku.
CComCurrency::operator == Tento operátor porovnává dva CComCurrency objekty pro rovnost.
CComCurrency::operator > Tento operátor porovná dva CComCurrency objekty a určí větší objekty.
CComCurrency::operator >= Tento operátor porovná dva CComCurrency objekty a určí rovnost nebo větší.
CComCurrency::operator CURRENCY Přetypuje CURRENCY objekt.

Veřejné datové členy

Název Popis
CComCurrency::m_currency Proměnná CURRENCY vytvořená instancí třídy.

Poznámky

CComCurrency je obálka pro CURRENCY datový typ. CURRENCY se implementuje jako celočíselná hodnota 8 bajtového doplňku se škálováním o 10 000. Toto měřítko poskytuje číslo s pevným bodem o 15 číslic vlevo od desetinné čárky a 4 číslic vpravo. Datový CURRENCY typ je užitečný pro výpočty zahrnující peníze nebo pro výpočty s pevným bodem, kde je přesnost důležitá.

Obálka CComCurrency implementuje aritmetické operace, přiřazení a porovnání tohoto typu s pevným bodem. Byly vybrány podporované aplikace pro řízení chyb zaokrouhlení, ke kterým může dojít při výpočtech s pevnými body.

Objekt CComCurrency poskytuje přístup k číslům na obou stranách desetinné čárky ve formě dvou součástí: celočíselná komponenta, která ukládá hodnotu vlevo od desetinné čárky, a zlomkovou komponentu, která ukládá hodnotu vpravo od desetinné čárky. Zlomková komponenta je uložena interně jako celočíselná hodnota mezi -9999 (CY_MIN_FRACTION) a +9999 (CY_MAX_FRACTION). Metoda CComCurrency::GetFraction vrátí hodnotu škálovanou faktorem 1 0000 (CY_SCALE).

Při zadávání celočíselné a zlomkové komponenty objektu CComCurrency nezapomeňte, že desetinná součást je číslo v rozsahu 0 až 9999. Tato skutečnost je důležitá při práci s měnou, jako je americký dolar. Částky v dolarech se obvykle vyjadřují pouze dvěma významnými číslicemi za desetinnou čárkou. I když se nezobrazují poslední dvě číslice, je nutné je vzít v úvahu.

Hodnota Možná přiřazení CComCurrency
$10,50 CComCurrency(10,5000) nebo CComCurrency(10.50)
$10,05 CComCurrency(10,500) nebo CComCurrency(10.05)

Hodnoty CY_MIN_FRACTION, CY_MAX_FRACTIONa CY_SCALE jsou definovány v atlcur.h.

Požadavky

Hlavička: atlcur.h

CComCurrency::CComCurrency

Konstruktor

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);

Parametry

curSrc
Existující objekt CComCurrency.

cySrc
Proměnná typu CURRENCY.

bSrc, dSrc, fSrc, lSrc, sSrc, , ulSrcusSrc
Počáteční hodnota zadaná členské proměnné m_currency.

cSrc
Znak obsahující počáteční hodnotu zadanou členské proměnné m_currency.

nInteger, nFraction
Celočíselná a desetinná část počáteční peněžní hodnoty. Další informace najdete v přehledu CComCurrency .

pDispSrc
Ukazatel IDispatch .

varSrc
Proměnná typu VARIANT. Národní prostředí aktuálního vlákna se používá k provedení převodu.

szSrc
Řetězec Unicode nebo ANSI obsahující počáteční hodnotu. Národní prostředí aktuálního vlákna se používá k provedení převodu.

Poznámky

Konstruktor nastaví počáteční hodnotu CComCurrency::m_currencya přijímá širokou škálu datových typů, včetně celých čísel, řetězců, čísel s plovoucí desetinnou čárkou, CURRENCY proměnných a dalších CComCurrency objektů. Pokud není zadána žádná hodnota, m_currency nastaví se hodnota 0.

Pokud dojde k chybě, například přetečení, konstruktory, které nemají prázdnou specifikaci výjimky (throw()) AtlThrow s popisem HRESULT chyby.

Při použití hodnot s plovoucí desetinou čárkou nebo dvojitých hodnot k přiřazení hodnoty nezapomeňte, že CComCurrency(10.50) je ekvivalentní CComCurrency(10,5000), a ne CComCurrency(10,50).

CComCurrency::GetCurrencyPtr

Vrátí adresu datového člena m_currency .

CURRENCY* GetCurrencyPtr() throw();

Vrácená hodnota

Vrátí adresu datového člena m_currency .

CComCurrency::GetFraction

Voláním této metody vrátíte zlomkovou komponentu objektu CComCurrency .

SHORT GetFraction() const;

Vrácená hodnota

Vrátí zlomkovou komponentu datového členu m_currency .

Poznámky

Desetinná součást je 4ciferná celočíselná hodnota mezi -9999 (CY_MIN_FRACTION) a +9999 (CY_MAX_FRACTION). GetFraction vrátí tuto hodnotu škálovanou o 1 0000 (CY_SCALE). Hodnoty , CY_MIN_FRACTIONCY_MAX_FRACTIONa CY_SCALE jsou definovány v atlcur.h.

Příklad

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

CComCurrency::GetInteger

Voláním této metody získáte celočíselnou komponentu objektu CComCurrency .

LONGLONG GetInteger() const;

Vrácená hodnota

Vrátí celočíselnou komponentu datového členu m_currency .

Příklad

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

CComCurrency::m_currency

Datový CURRENCY člen.

CURRENCY m_currency;

Poznámky

Tento člen uchovává měnu, ke které se přistupuje a manipuluje metodami této třídy.

CComCurrency::operator -

Tento operátor slouží k provádění odčítání objektu CComCurrency .

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

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

CComCurrency Vrátí objekt představující výsledek odčítání. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator !=

Tento operátor porovnává dva objekty pro nerovnost.

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

Parametry

cur
Objekt CComCurrency , který se má porovnat.

Vrácená hodnota

Vrátí TRUE , pokud porovnávaná položka není rovna objektu CComCurrency ; v opačném případě FALSE.

Příklad

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

CComCurrency::operator *

Tento operátor slouží k provádění násobení objektu CComCurrency .

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

Parametry

nOperand
Násobitel.

cur
Objekt CComCurrency použitý jako násobitel.

Vrácená hodnota

CComCurrency Vrátí objekt představující výsledek násobení. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator *=

Tento operátor slouží k provádění násobení objektu CComCurrency a přiřazení výsledku.

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

Parametry

nOperand
Násobitel.

cur
Objekt CComCurrency použitý jako násobitel.

Vrácená hodnota

Vrátí aktualizovaný CComCurrency objekt. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator /

Tento operátor slouží k dělení objektu CComCurrency .

CComCurrency operator/(long nOperand) const;

Parametry

nOperand
Dělitel.

Vrácená hodnota

CComCurrency Vrátí objekt představující výsledek dělení. Pokud je dělitel 0, dojde k selhání kontrolního výrazu.

Příklad

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

CComCurrency::operator /=

Tento operátor slouží k provedení dělení objektu CComCurrency a přiřazení výsledku.

const CComCurrency& operator/= (long nOperand);

Parametry

nOperand
Dělitel.

Vrácená hodnota

Vrátí aktualizovaný CComCurrency objekt. Pokud je dělitel 0, dojde k selhání kontrolního výrazu.

Příklad

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

CComCurrency::operator +

Tento operátor slouží k přidání objektu CComCurrency .

CComCurrency operator+(const CComCurrency& cur) const;

Parametry

cur
Objekt CComCurrency , který se má přidat do původního objektu.

Vrácená hodnota

CComCurrency Vrátí objekt představující výsledek sčítání. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator +=

Tento operátor slouží k provádění sčítání objektu CComCurrency a přiřazení výsledku k aktuálnímu objektu.

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

Parametry

cur
Objekt CComCurrency

Vrácená hodnota

Vrátí aktualizovaný CComCurrency objekt. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator <

Tento operátor porovnává dva CComCurrency objekty, aby určil menší.

bool operator<(const CComCurrency& cur) const;

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

Vrátí TRUE , pokud je první objekt menší než druhý, FALSE jinak.

Příklad

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

CComCurrency::operator <=

Tento operátor porovnává dva CComCurrency objekty k určení rovnosti nebo menší.

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

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

Vrátí TRUE , pokud je první objekt menší nebo roven druhé, FALSE jinak.

Příklad

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

CComCurrency::operator =

Tento operátor přiřadí CComCurrency objekt nové hodnotě.

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);

Parametry

curSrc
Objekt CComCurrency .

cySrc
Proměnná typu CURRENCY.

sSrc, fSrc, , bSrcdSrccSrclSrcusSrc, , ulSrcdSrc
Číselná hodnota, CComCurrency která se má objektu přiřadit.

Vrácená hodnota

Vrátí aktualizovaný CComCurrency objekt. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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 -=

Tento operátor slouží k provádění odčítání objektu CComCurrency a přiřazení výsledku.

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

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

Vrátí aktualizovaný CComCurrency objekt. Pokud dojde k chybě, například přetečení, tento operátor zavolá AtlThrow s popisem HRESULT chyby.

Příklad

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

CComCurrency::operator ==

Tento operátor porovnává dva CComCurrency objekty pro rovnost.

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

Parametry

cur
Objekt CComCurrency , který chcete porovnat.

Vrácená hodnota

Vrátí TRUE , pokud jsou objekty stejné (tj m_currency . datové členy, celé číslo i zlomky, v obou objektech mají stejnou hodnotu), FALSE jinak.

Příklad

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

CComCurrency::operator >

Tento operátor porovná dva CComCurrency objekty a určí větší objekty.

bool operator>(const CComCurrency& cur) const;

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

Vrátí TRUE , pokud je první objekt větší než druhý, FALSE jinak.

Příklad

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

CComCurrency::operator >=

Tento operátor porovná dva CComCurrency objekty a určí rovnost nebo větší.

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

Parametry

cur
Objekt CComCurrency .

Vrácená hodnota

Vrátí TRUE , pokud je první objekt větší nebo roven druhé, FALSE jinak.

Příklad

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

CComCurrency::operator CURRENCY

Tyto operátory slouží k přetypování CComCurrency objektu CURRENCY na datový typ.

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

Vrácená hodnota

Vrátí odkaz na CURRENCY objekt.

Příklad

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

CComCurrency::Round

Voláním této metody zaokrouhlíte měnu na zadaný počet desetinných míst.

HRESULT Roundint nDecimals);

Parametry

nDecimals
Počet číslic, na které m_currency se zaokrouhlí, v rozsahu 0 až 4.

Vrácená hodnota

Vrátí S_OK úspěch nebo chybu při selhání HRESULT .

Příklad

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

CComCurrency::SetFraction

Voláním této metody nastavíte zlomkovou komponentu objektu CComCurrency .

HRESULT SetFraction(SHORT nFraction);

Parametry

nFraction
Hodnota, která se přiřadí zlomkové komponentě datového členu m_currency . Znaménko zlomkové komponenty musí být stejné jako celočíselná komponenta a hodnota musí být v rozsahu -9999 (CY_MIN_FRACTION) až +9999 (CY_MAX_FRACTION).

Vrácená hodnota

Vrátí S_OK úspěch nebo chybu při selhání HRESULT .

Příklad

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

CComCurrency::SetInteger

Voláním této metody nastavíte celočíselnou komponentu objektu CComCurrency .

HRESULT SetInteger(LONGLONG nInteger);

Parametry

nInteger
Hodnota, která se má přiřadit k celočíselné komponentě datového členu m_currency . Znaménko celočíselné součásti musí odpovídat znaménku existující zlomkové komponenty.

nInteger musí být v rozsahu CY_MIN_INTEGER , včetně CY_MAX_INTEGER. Tyto hodnoty jsou definovány v atlcur.h.

Vrácená hodnota

Vrátí S_OK úspěch nebo chybu při selhání HRESULT .

Příklad

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

Viz také

Třída COleCurrency
CURRENCY
Přehled třídy