Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Round(int 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);