Delen via


CComCurrency-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

CComCurrency bevat methoden en operators voor het maken en beheren van een CURRENCY object.

Syntaxis

class CComCurrency;

Leden

Openbare constructors

Naam Description
CComCurrency::CComCurrency De constructor voor een CComCurrency object.

Openbare methoden

Naam Description
CComCurrency::GetCurrencyPtr Retourneert het adres van een m_currency gegevenslid.
CComCurrency::GetFraction Roep deze methode aan om het fractionele onderdeel van een CComCurrency object te retourneren.
CComCurrency::GetInteger Roep deze methode aan om het gehele getal van een CComCurrency object te retourneren.
CComCurrency::Round Roep deze methode aan om een CComCurrency object af te ronden op de dichtstbijzijnde gehele waarde.
CComCurrency::SetFraction Roep deze methode aan om het fractionele onderdeel van een CComCurrency object in te stellen.
CComCurrency::SetInteger Roep deze methode aan om het gehele getal van een CComCurrency object in te stellen.

Openbare operators

Naam Description
CComCurrency::operator - Deze operator wordt gebruikt om aftrekken uit te voeren op een CComCurrency object.
CComCurrency::operator != Vergelijkt twee CComCurrency objecten voor ongelijkheid.
CComCurrency::operator * Deze operator wordt gebruikt om vermenigvuldigen op een CComCurrency object uit te voeren.
CComCurrency::operator *= Deze operator wordt gebruikt om vermenigvuldigen op een CComCurrency object uit te voeren en het resultaat toe te wijzen.
CComCurrency::operator / Deze operator wordt gebruikt om deling uit te voeren op een CComCurrency object.
CComCurrency::operator /= Deze operator wordt gebruikt om deling uit te voeren op een CComCurrency object en het resultaat toe te wijzen.
CComCurrency::operator + Deze operator wordt gebruikt om optellen op een CComCurrency object uit te voeren.
CComCurrency::operator += Deze operator wordt gebruikt om optellen op een CComCurrency object uit te voeren en het resultaat toe te wijzen aan het huidige object.
CComCurrency::operator < Met deze operator worden twee CComCurrency objecten vergeleken om de mindere objecten te bepalen.
CComCurrency::operator <= Deze operator vergelijkt twee CComCurrency objecten om gelijkheid te bepalen of minder.
CComCurrency::operator = Met deze operator wordt het CComCurrency object toegewezen aan een nieuwe waarde.
CComCurrency::operator -= Deze operator wordt gebruikt om aftrekken uit te voeren op een CComCurrency object en het resultaat toe te wijzen.
CComCurrency::operator == Deze operator vergelijkt twee CComCurrency objecten voor gelijkheid.
CComCurrency::operator > Deze operator vergelijkt twee CComCurrency objecten om de grotere te bepalen.
CComCurrency::operator >= Deze operator vergelijkt twee CComCurrency objecten om gelijkheid te bepalen of groter.
CComCurrency::operator CURRENCY Casts a CURRENCY object.

Leden van openbare gegevens

Naam Description
CComCurrency::m_currency De CURRENCY variabele die door uw klasse-exemplaar is gemaakt.

Opmerkingen

CComCurrency is een wrapper voor het CURRENCY gegevenstype. CURRENCY wordt geïmplementeerd als een geheel getal van 8 bytes dat met 10.000 wordt geschaald. Deze schaalaanpassing geeft een vast puntnummer met 15 cijfers links van het decimaalteken en 4 cijfers rechts. Het CURRENCY gegevenstype is handig voor berekeningen met geld of voor berekeningen met vaste punten waarbij nauwkeurigheid belangrijk is.

De CComCurrency wrapper implementeert rekenkundige bewerkingen, toewijzingen en vergelijkingsbewerkingen voor dit type vast punt. De ondersteunde toepassingen zijn geselecteerd om de afrondingsfouten te beheren die kunnen optreden tijdens berekeningen met vaste punten.

Het CComCurrency object biedt toegang tot de getallen aan beide zijden van het decimaalteken in de vorm van twee onderdelen: een geheel getal, waarin de waarde links van het decimaalteken wordt opgeslagen en een breukonderdeel, waarin de waarde rechts van het decimaalteken wordt opgeslagen. Het fractionele onderdeel wordt intern opgeslagen als een geheel getal tussen -9999 (CY_MIN_FRACTION) en +9999 (CY_MAX_FRACTION). De methode CComCurrency::GetFraction retourneert een waarde die is geschaald met een factor van 10000 (CY_SCALE).

Wanneer u het gehele getal en de breukonderdelen van een CComCurrency object opgeeft, moet u er rekening mee houden dat het fractionele onderdeel een getal is in het bereik van 0 tot en met 9999. Deze overweging is belangrijk bij het omgaan met een valuta zoals de Amerikaanse dollar. Dollarbedragen worden meestal uitgedrukt met slechts twee significante cijfers na het decimaalteken. Hoewel de laatste twee cijfers niet worden weergegeven, moeten ze in aanmerking worden genomen.

Waarde Mogelijke CComCurrency-toewijzingen
$ 10,50 CComCurrency(10,5000) of CComCurrency(10.50)
$ 10,05 CComCurrency(10,500) of CComCurrency(10.05)

De waarden CY_MIN_FRACTION, CY_MAX_FRACTIONen CY_SCALE worden gedefinieerd in atlcur.h.

Requirements

Koptekst: atlcur.h

CComCurrency::CComCurrency

De constructor.

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

Parameterwaarden

curSrc
Een bestaand CComCurrency object.

cySrc
Een variabele van het type CURRENCY.

bSrc, , dSrcfSrc, lSrc, , sSrc, , ulSrcusSrc
De initiële waarde die aan de lidvariabele m_currencywordt gegeven.

cSrc
Een teken met de initiële waarde die aan de lidvariabele m_currencyis gegeven.

nInteger, nFraction
Het gehele getal en de fractionele onderdelen van de oorspronkelijke monetaire waarde. Zie het CComCurrency overzicht voor meer informatie.

pDispSrc
Een IDispatch aanwijzer.

varSrc
Een variabele van het type VARIANT. De landinstelling van de huidige thread wordt gebruikt om de conversie uit te voeren.

szSrc
Een Unicode- of ANSI-tekenreeks met de initiële waarde. De landinstelling van de huidige thread wordt gebruikt om de conversie uit te voeren.

Opmerkingen

De constructor stelt de initiële waarde van CComCurrency::m_currencyen accepteert een breed scala aan gegevenstypen, waaronder gehele getallen, tekenreeksen, drijvendekommanummers, CURRENCY variabelen en andere CComCurrency objecten. Als er geen waarde is opgegeven, m_currency wordt deze ingesteld op 0.

Als er een fout optreedt, zoals een overloop, ontbreken de constructors aan een lege uitzonderingsspecificatie (throw()) AtlThrow met een HRESULT beschrijving van de fout.

Wanneer u drijvendekomma- of dubbele waarden gebruikt om een waarde toe te wijzen, moet u er rekening mee houden dat dit CComCurrency(10.50) gelijk is aan CComCurrency(10,5000)en niet CComCurrency(10,50).

CComCurrency::GetCurrencyPtr

Retourneert het adres van een m_currency gegevenslid.

CURRENCY* GetCurrencyPtr() throw();

Retourwaarde

Retourneert het adres van een m_currency gegevenslid

CComCurrency::GetFraction

Roep deze methode aan om het fractionele onderdeel van het CComCurrency object te retourneren.

SHORT GetFraction() const;

Retourwaarde

Retourneert het fractionele onderdeel van het m_currency gegevenslid.

Opmerkingen

Het breukgedeelte is een geheel getal van 4 cijfers tussen -9999 (CY_MIN_FRACTION) en +9999 (CY_MAX_FRACTION). GetFraction retourneert deze waarde geschaald met 10000 (CY_SCALE). De waarden van CY_MIN_FRACTION, CY_MAX_FRACTIONen CY_SCALE worden gedefinieerd in atlcur.h.

Example

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

CComCurrency::GetInteger

Roep deze methode aan om het gehele getal van een CComCurrency object op te halen.

LONGLONG GetInteger() const;

Retourwaarde

Retourneert het gehele getal van het m_currency gegevenslid.

Example

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

CComCurrency::m_currency

Het CURRENCY gegevenslid.

CURRENCY m_currency;

Opmerkingen

Dit lid bevat de valuta die wordt geopend en gemanipuleerd door de methoden van deze klasse.

CComCurrency::operator -

Deze operator wordt gebruikt om aftrekken uit te voeren op een CComCurrency object.

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

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert een CComCurrency object dat het resultaat van de aftrekking aangeeft. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator !=

Deze operator vergelijkt twee objecten voor ongelijkheid.

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

Parameterwaarden

cur
Het CComCurrency object dat moet worden vergeleken.

Retourwaarde

Retourneert TRUE als het item dat wordt vergeleken niet gelijk is aan het CComCurrency object; anders. FALSE

Example

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

CComCurrency::operator *

Deze operator wordt gebruikt om vermenigvuldigen op een CComCurrency object uit te voeren.

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

Parameterwaarden

nOperand
De vermenigvuldiger.

cur
Het CComCurrency object dat wordt gebruikt als vermenigvuldiger.

Retourwaarde

Retourneert een CComCurrency object dat het resultaat van de vermenigvuldiging aangeeft. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator *=

Deze operator wordt gebruikt om vermenigvuldigen op een CComCurrency object uit te voeren en het resultaat toe te wijzen.

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

Parameterwaarden

nOperand
De vermenigvuldiger.

cur
Het CComCurrency object dat wordt gebruikt als vermenigvuldiger.

Retourwaarde

Retourneert het bijgewerkte CComCurrency object. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator /

Deze operator wordt gebruikt om deling uit te voeren op een CComCurrency object.

CComCurrency operator/(long nOperand) const;

Parameterwaarden

nOperand
De deler.

Retourwaarde

Retourneert een CComCurrency object dat het resultaat van de deling aangeeft. Als de deler 0 is, treedt er een assertiefout op.

Example

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

CComCurrency::operator /=

Deze operator wordt gebruikt om deling uit te voeren op een CComCurrency object en het resultaat toe te wijzen.

const CComCurrency& operator/= (long nOperand);

Parameterwaarden

nOperand
De deler.

Retourwaarde

Retourneert het bijgewerkte CComCurrency object. Als de deler 0 is, treedt er een assertiefout op.

Example

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

CComCurrency::operator +

Deze operator wordt gebruikt om optellen op een CComCurrency object uit te voeren.

CComCurrency operator+(const CComCurrency& cur) const;

Parameterwaarden

cur
Het CComCurrency object dat moet worden toegevoegd aan het oorspronkelijke object.

Retourwaarde

Retourneert een CComCurrency object dat het resultaat van de toevoeging aangeeft. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator +=

Deze operator wordt gebruikt om optellen op een CComCurrency object uit te voeren en het resultaat toe te wijzen aan het huidige object.

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

Parameterwaarden

cur
Het CComCurrency-object.

Retourwaarde

Retourneert het bijgewerkte CComCurrency object. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator <

Met deze operator worden twee CComCurrency objecten vergeleken om de mindere objecten te bepalen.

bool operator<(const CComCurrency& cur) const;

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert TRUE als het eerste object kleiner is dan het tweede, FALSE anders.

Example

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

CComCurrency::operator <=

Deze operator vergelijkt twee CComCurrency objecten om gelijkheid te bepalen of minder.

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

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert TRUE als het eerste object kleiner is dan of gelijk is aan het tweede, FALSE anders.

Example

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

CComCurrency::operator =

Met deze operator wordt het CComCurrency object toegewezen aan een nieuwe waarde.

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

Parameterwaarden

curSrc
Een CComCurrency-object.

cySrc
Een variabele van het type CURRENCY.

sSrc, , lSrcfSrc, bSrc, , usSrc, dSrc, ulSrccSrcdSrc
De numerieke waarde die moet worden toegewezen aan het CComCurrency object.

Retourwaarde

Retourneert het bijgewerkte CComCurrency object. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

Deze operator wordt gebruikt om aftrekken uit te voeren op een CComCurrency object en het resultaat toe te wijzen.

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

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert het bijgewerkte CComCurrency object. Als er een fout optreedt, zoals een overloop, roept AtlThrow deze operator een HRESULT beschrijving van de fout aan.

Example

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

CComCurrency::operator ==

Deze operator vergelijkt twee CComCurrency objecten voor gelijkheid.

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

Parameterwaarden

cur
Het CComCurrency object dat moet worden vergeleken.

Retourwaarde

Retourneert TRUE als de objecten gelijk zijn (dat wil gezegd, de m_currency gegevensleden, zowel gehele getallen als breuken, in beide objecten dezelfde waarde hebben), FALSE anders.

Example

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

CComCurrency::operator >

Deze operator vergelijkt twee CComCurrency objecten om de grotere te bepalen.

bool operator>(const CComCurrency& cur) const;

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert TRUE als het eerste object groter is dan het tweede, FALSE anders.

Example

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

CComCurrency::operator >=

Deze operator vergelijkt twee CComCurrency objecten om gelijkheid te bepalen of groter.

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

Parameterwaarden

cur
Een CComCurrency-object.

Retourwaarde

Retourneert TRUE als het eerste object groter is dan of gelijk is aan het tweede, FALSE anders.

Example

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

CComCurrency::operator CURRENCY

Deze operators worden gebruikt om een CComCurrency object naar een CURRENCY gegevenstype te casten.

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

Retourwaarde

Retourneert een verwijzing naar een CURRENCY object.

Example

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

CComCurrency::Round

Roep deze methode aan om de valuta af te ronden op een opgegeven aantal decimalen.

HRESULT Round(int nDecimals);

Parameterwaarden

nDecimals
Het aantal cijfers dat m_currency wordt afgerond, in het bereik van 0 tot 4.

Retourwaarde

Retourneert S_OK een geslaagde fout of een fout HRESULT bij een fout.

Example

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

CComCurrency::SetFraction

Roep deze methode aan om het fractionele onderdeel van een CComCurrency object in te stellen.

HRESULT SetFraction(SHORT nFraction);

Parameterwaarden

nFraction
De waarde die moet worden toegewezen aan het fractionele onderdeel van het m_currency gegevenslid. Het teken van het breukonderdeel moet hetzelfde zijn als het gehele getal en de waarde moet zich in het bereik -9999 (CY_MIN_FRACTION) tot +9999 (CY_MAX_FRACTION) bevinden.

Retourwaarde

Retourneert S_OK een geslaagde fout of een fout HRESULT bij een fout.

Example

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

CComCurrency::SetInteger

Roep deze methode aan om het gehele getal van een CComCurrency object in te stellen.

HRESULT SetInteger(LONGLONG nInteger);

Parameterwaarden

nInteger
De waarde die moet worden toegewezen aan het gehele getal van het m_currency gegevenslid. Het teken van het gehele getal moet overeenkomen met het teken van het bestaande breukonderdeel.

nInteger moet binnen het bereik CY_MIN_INTEGER liggen tot CY_MAX_INTEGER, inclusief. Deze waarden worden gedefinieerd in atlcur.h.

Retourwaarde

Retourneert S_OK een geslaagde fout of een fout HRESULT bij een fout.

Example

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

Zie ook

COleCurrency klas
CURRENCY
Overzicht van klassen