Freigeben über


CComCurrency-Klasse

CComCurrency verfügt über Methoden und Operatoren zum Erstellen und Verwalten eines CURRENCY Objekts.

Syntax

class CComCurrency;

Member

Öffentliche Konstruktoren

Name Beschreibung
CComCurrency::CComCurrency Der Konstruktor für ein CComCurrency-Objekt.

Öffentliche Methoden

Name Beschreibung
CComCurrency::GetCurrencyPtr Gibt die Adresse eines m_currency-Datenmembers zurück.
CComCurrency::GetFraction Rufen Sie diese Methode auf, um den Nachkommawert eines CComCurrency-Objekts zurückzugeben.
CComCurrency::GetInteger Rufen Sie diese Methode auf, um die ganzzahlige Komponente eines CComCurrency-Objekts zurückzugeben.
CComCurrency::Round Rufen Sie diese Methode auf, um ein CComCurrency-Objekt auf den nächsten ganzzahligen Wert zu runden.
CComCurrency::SetFraction Rufen Sie diese Methode auf, um den Nachkommawert eines CComCurrency-Objekts festzulegen.
CComCurrency::SetInteger Rufen Sie diese Methode auf, um den ganzzahligen Wert eines CComCurrency-Objekts festzulegen.

Öffentliche Operatoren

Name Beschreibung
CComCurrency::operator - Dieser Operator wird verwendet, um Subtraktion für ein CComCurrency-Objekt auszuführen.
CComCurrency::operator != Überprüft zwei CComCurrency-Objekte auf Ungleichheit.
CComCurrency::operator * Dieser Operator wird verwendet, um Multiplikation für ein CComCurrency-Objekt auszuführen.
CComCurrency::operator *= Dieser Operator wird verwendet, um Multiplikation für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.
CComCurrency::operator / Dieser Operator wird verwendet, um Division für ein CComCurrency-Objekt auszuführen.
CComCurrency::operator /= Dieser Operator wird verwendet, um Division für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.
CComCurrency::operator + Dieser Operator wird verwendet, um Addition für ein CComCurrency-Objekt auszuführen.
CComCurrency::operator += Dieser Operator wird verwendet, um Addition für ein CComCurrency-Objekt auszuführen und das Ergebnis dem aktuellen Objekt zuzuweisen.
CComCurrency::operator < Dieser Operator vergleicht zwei CComCurrency-Objekte, um das kleinere zu bestimmen.
CComCurrency::operator <= Dieser Operator vergleicht zwei CComCurrency-Objekte, um zu bestimmen, ob sie gleich sind oder welches kleiner ist.
CComCurrency::operator = Dieser Operator weist dem CComCurrency-Objekt einen neuen Wert zu.
CComCurrency::operator -= Dieser Operator wird verwendet, um Subtraktion für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.
CComCurrency::operator == Dieser Operator überprüft zwei CComCurrency-Objekte auf Gleichheit.
CComCurrency::operator > Dieser Operator vergleicht zwei CComCurrency-Objekte, um das größere zu bestimmen.
CComCurrency::operator >= Dieser Operator vergleicht zwei CComCurrency-Objekte, um zu bestimmen, ob sie gleich sind oder welches größer ist.
CComCurrency::operator CURRENCY Wandelt ein Objekt um CURRENCY .

Öffentliche Datenmmber

Name Beschreibung
CComCurrency::m_currency Die CURRENCY variable, die von Der Klasseninstanz erstellt wurde.

Hinweise

CComCurrency ist ein Wrapper für den CURRENCY Datentyp. CURRENCY wird als 8-Byte-Ganzzahlwert von 8 Byte implementiert, der um 10.000 skaliert wird. Diese Skalierung gibt eine Feste Zahl mit 15 Ziffern links neben dem Dezimalkomma und vier Ziffern rechts an. Der CURRENCY Datentyp ist nützlich für Berechnungen mit Geld oder für alle Festkommaberechnungen, bei denen genauigkeit wichtig ist.

Der CComCurrency Wrapper implementiert arithmetische, Zuordnungs- und Vergleichsvorgänge für diesen Festpunkttyp. Die unterstützten Anwendungen wurden ausgewählt, um die Rundungsfehler zu steuern, die während der Festkommaberechnungen auftreten können.

Das CComCurrency Objekt bietet Zugriff auf die Zahlen auf beiden Seiten des Dezimalkomma in Form von zwei Komponenten: eine ganzzahlige Komponente, die den Wert links vom Dezimalkomma speichert, und eine Bruchkomponente, die den Wert rechts vom Dezimalkomma speichert. Die Bruchkomponente wird intern als ganzzahliger Wert zwischen -9999 (CY_MIN_FRACTION) und +9999 (CY_MAX_FRACTION) gespeichert. Die Methode CComCurrency::GetFraction gibt einen Wert zurück, der um den Faktor 10000 (CY_SCALE) skaliert wird.

Wenn Sie die Ganzzahl- und Bruchkomponenten eines CComCurrency Objekts angeben, denken Sie daran, dass die Bruchkomponente eine Zahl im Bereich von 0 bis 9999 ist. Diese Überlegung ist wichtig beim Umgang mit einer Währung wie dem US-Dollar. Dollarbeträge werden häufig nur mit zwei signifikanten Ziffern nach dem Dezimalkomma ausgedrückt. Obwohl die letzten beiden Ziffern nicht angezeigt werden, müssen sie berücksichtigt werden.

Wert Mögliche CComCurrency-Zuweisungen
$10.50 CComCurrency(10,5000) oder CComCurrency(10.50)
$10.05 CComCurrency(10,500) oder CComCurrency(10.05)

Die Werte CY_MIN_FRACTION, CY_MAX_FRACTION, und CY_SCALE werden in atlcur.h definiert.

Anforderungen

Kopfzeile: atlcur.h

CComCurrency::CComCurrency

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

Parameter

curSrc
Ein vorhandenes CComCurrency-Objekt.

cySrc
Eine Variable des Typs CURRENCY.

bSrc, , dSrcfSrc, lSrc, sSrc, , ulSrcusSrc
Der Anfangswert, der der Membervariablen m_currencyzugewiesen wird.

cSrc
Ein Zeichen, das den Anfangswert enthält, der der Membervariablen m_currencyzugewiesen wird.

nInteger, nFraction
Die ganzzahligen und bruchteilalen Komponenten des Anfänglichen Währungswerts. Weitere Informationen finden Sie in der CComCurrency Übersicht.

pDispSrc
Ein IDispatch Zeiger.

varSrc
Eine Variable des Typs VARIANT. Das Gebietsschema des aktuellen Threads wird zum Ausführen der Konvertierung verwendet.

szSrc
Eine Unicode- oder ANSI-Zeichenfolge, die den Anfangswert enthält. Das Gebietsschema des aktuellen Threads wird zum Ausführen der Konvertierung verwendet.

Hinweise

Der Konstruktor legt den Anfangswert von CComCurrency::m_currency, und akzeptiert eine breite Palette von Datentypen, einschließlich ganzzahliger Zahlen, Zeichenfolgen, Gleitkommazahlen, CURRENCY Variablen und anderen CComCurrency Objekten. Wenn kein Wert angegeben wird, m_currency wird er auf 0 festgelegt.

Wenn ein Fehler auftritt, z. B. ein Überlauf, fehlen die Konstruktoren einen leeren Ausnahmespezifikationsaufruf AtlThrow (throw()) mit einer HRESULT Beschreibung des Fehlers.

Wenn Sie Gleitkomma- oder Doppelwerte zum Zuweisen eines Werts verwenden, denken Sie daran, dass CComCurrency(10.50) sie gleichbedeutend CComCurrency(10,5000)ist und nicht CComCurrency(10,50).

CComCurrency::GetCurrencyPtr

Gibt die Adresse eines m_currency-Datenmembers zurück.

CURRENCY* GetCurrencyPtr() throw();

Rückgabewert

Gibt die Adresse eines Datenmitglieds m_currency zurück.

CComCurrency::GetFraction

Rufen Sie diese Methode auf, um die Bruchkomponente des CComCurrency Objekts zurückzugeben.

SHORT GetFraction() const;

Rückgabewert

Gibt die Bruchkomponente des m_currency Datenelements zurück.

Hinweise

Die Bruchkomponente ist ein 4-stelliger ganzzahliger Wert zwischen -9999 (CY_MIN_FRACTION) und +9999 (CY_MAX_FRACTION). GetFraction gibt diesen Wert zurück, der um 10000 (CY_SCALE) skaliert wurde. Die Werte von CY_MIN_FRACTION, CY_MAX_FRACTIONund CY_SCALE werden in atlcur.h definiert.

Beispiel

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

CComCurrency::GetInteger

Rufen Sie diese Methode auf, um die ganzzahlige Komponente eines CComCurrency Objekts abzurufen.

LONGLONG GetInteger() const;

Rückgabewert

Gibt die ganzzahlige Komponente des m_currency Datenelements zurück.

Beispiel

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

CComCurrency::m_currency

Das CURRENCY Datenelement.

CURRENCY m_currency;

Hinweise

Dieses Element enthält die Währung, auf die von den Methoden dieser Klasse zugegriffen und bearbeitet wird.

CComCurrency::operator -

Dieser Operator wird verwendet, um Subtraktion für ein CComCurrency-Objekt auszuführen.

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

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt ein CComCurrency Objekt zurück, das das Ergebnis der Subtraktion darstellt. Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator !=

Dieser Operator vergleicht zwei Objekte für Ungleichheiten.

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

Parameter

cur
Das zu vergleichende CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn das zu vergleichende Element nicht dem Objekt entspricht CComCurrency ; andernfalls FALSE.

Beispiel

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

CComCurrency::operator *

Dieser Operator wird verwendet, um Multiplikation für ein CComCurrency-Objekt auszuführen.

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

Parameter

nOperand
Der Multiplikator.

cur
Das CComCurrency Objekt, das als Multiplikator verwendet wird.

Rückgabewert

Gibt ein CComCurrency Objekt zurück, das das Ergebnis der Multiplikation darstellt. Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator *=

Dieser Operator wird verwendet, um Multiplikation für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.

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

Parameter

nOperand
Der Multiplikator.

cur
Das CComCurrency Objekt, das als Multiplikator verwendet wird.

Rückgabewert

Gibt das aktualisierte Objekt zurück CComCurrency . Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator /

Dieser Operator wird verwendet, um Division für ein CComCurrency-Objekt auszuführen.

CComCurrency operator/(long nOperand) const;

Parameter

nOperand
Der Divisor.

Rückgabewert

Gibt ein CComCurrency Objekt zurück, das das Ergebnis der Division darstellt. Wenn der Divisor 0 ist, tritt ein Assertionsfehler auf.

Beispiel

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

CComCurrency::operator /=

Dieser Operator wird verwendet, um Division für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.

const CComCurrency& operator/= (long nOperand);

Parameter

nOperand
Der Divisor.

Rückgabewert

Gibt das aktualisierte Objekt zurück CComCurrency . Wenn der Divisor 0 ist, tritt ein Assertionsfehler auf.

Beispiel

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

CComCurrency::operator +

Dieser Operator wird verwendet, um Addition für ein CComCurrency-Objekt auszuführen.

CComCurrency operator+(const CComCurrency& cur) const;

Parameter

cur
Das CComCurrency Objekt, das dem ursprünglichen Objekt hinzugefügt werden soll.

Rückgabewert

Gibt ein CComCurrency Objekt zurück, das das Ergebnis der Addition darstellt. Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator +=

Dieser Operator wird verwendet, um Addition für ein CComCurrency-Objekt auszuführen und das Ergebnis dem aktuellen Objekt zuzuweisen.

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

Parameter

cur
Das CComCurrency-Objekt.

Rückgabewert

Gibt das aktualisierte Objekt zurück CComCurrency . Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator <

Dieser Operator vergleicht zwei CComCurrency-Objekte, um das kleinere zu bestimmen.

bool operator<(const CComCurrency& cur) const;

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn das erste Objekt kleiner als die zweite ist, FALSE andernfalls.

Beispiel

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

CComCurrency::operator <=

Dieser Operator vergleicht zwei CComCurrency-Objekte, um zu bestimmen, ob sie gleich sind oder welches kleiner ist.

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

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn das erste Objekt kleiner oder gleich der zweiten ist, FALSE andernfalls.

Beispiel

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

CComCurrency::operator =

Dieser Operator weist dem CComCurrency-Objekt einen neuen Wert zu.

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

Parameter

curSrc
Ein CComCurrency-Objekt.

cySrc
Eine Variable des Typs CURRENCY.

sSrc, fSrc, , bSrclSrc, usSrc, dSrc, cSrc, , ulSrcdSrc
Der numerische Wert, der dem CComCurrency Objekt zugewiesen werden soll.

Rückgabewert

Gibt das aktualisierte Objekt zurück CComCurrency . Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

Dieser Operator wird verwendet, um Subtraktion für ein CComCurrency-Objekt auszuführen und ihm das Ergebnis zuzuweisen.

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

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt das aktualisierte Objekt zurück CComCurrency . Wenn ein Fehler auftritt, z. B. ein Überlauf, ruft dieser Operator mit einer HRESULT Beschreibung des Fehlers aufAtlThrow.

Beispiel

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

CComCurrency::operator ==

Dieser Operator überprüft zwei CComCurrency-Objekte auf Gleichheit.

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

Parameter

cur
Das zu vergleichende CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn die Objekte gleich sind (d. h. die m_currency Datenmmber, ganze Zahl und Bruchzahl, in beiden Objekten haben denselben Wert), FALSE andernfalls.

Beispiel

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

CComCurrency::operator >

Dieser Operator vergleicht zwei CComCurrency-Objekte, um das größere zu bestimmen.

bool operator>(const CComCurrency& cur) const;

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn das erste Objekt größer als die zweite ist, FALSE andernfalls.

Beispiel

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

CComCurrency::operator >=

Dieser Operator vergleicht zwei CComCurrency-Objekte, um zu bestimmen, ob sie gleich sind oder welches größer ist.

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

Parameter

cur
Ein CComCurrency-Objekt.

Rückgabewert

Gibt zurück TRUE , wenn das erste Objekt größer oder gleich der zweiten ist, FALSE andernfalls.

Beispiel

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

CComCurrency::operator CURRENCY

Diese Operatoren werden verwendet, um ein CComCurrency Objekt in einen CURRENCY Datentyp zu umwandeln.

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

Rückgabewert

Gibt einen Verweis auf ein CURRENCY Objekt zurück.

Beispiel

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

CComCurrency::Round

Rufen Sie diese Methode auf, um die Währung auf eine bestimmte Anzahl von Dezimalstellen zu runden.

HRESULT Roundint nDecimals);

Parameter

nDecimals
Die Anzahl der Ziffern, auf die m_currency gerundet wird, im Bereich 0 bis 4.

Rückgabewert

Gibt S_OK bei Erfolg oder bei Einem Fehler einen Fehler HRESULT zurück.

Beispiel

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

CComCurrency::SetFraction

Rufen Sie diese Methode auf, um den Nachkommawert eines CComCurrency-Objekts festzulegen.

HRESULT SetFraction(SHORT nFraction);

Parameter

nFraction
Der Wert, der der Bruchkomponente des m_currency Datenelements zugewiesen werden soll. Das Vorzeichen der Bruchkomponente muss mit der ganzzahligen Komponente identisch sein, und der Wert muss sich im Bereich -9999 (CY_MIN_FRACTION) bis +9999 () befindenCY_MAX_FRACTION.

Rückgabewert

Gibt S_OK bei Erfolg oder bei Einem Fehler einen Fehler HRESULT zurück.

Beispiel

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

CComCurrency::SetInteger

Rufen Sie diese Methode auf, um den ganzzahligen Wert eines CComCurrency-Objekts festzulegen.

HRESULT SetInteger(LONGLONG nInteger);

Parameter

nInteger
Der Wert, der der ganzzahligen Komponente des m_currency Datenelements zugewiesen werden soll. Das Vorzeichen der ganzzahligen Komponente muss mit dem Vorzeichen der vorhandenen Bruchkomponente übereinstimmen.

nInteger muss sich im Bereich CY_MIN_INTEGER bis CY_MAX_INTEGEReinschließlich befinden. Diese Werte werden in atlcur.h definiert.

Rückgabewert

Gibt S_OK bei Erfolg oder bei Einem Fehler einen Fehler HRESULT zurück.

Beispiel

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

Siehe auch

COleCurrency-Klasse
CURRENCY
Klassenübersicht