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
, , dSrc
fSrc
, lSrc
, sSrc
, , ulSrc
usSrc
Der Anfangswert, der der Membervariablen m_currency
zugewiesen wird.
cSrc
Ein Zeichen, das den Anfangswert enthält, der der Membervariablen m_currency
zugewiesen 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_FRACTION
und 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
, , bSrc
lSrc
, usSrc
, dSrc
, cSrc
, , ulSrc
dSrc
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_INTEGER
einschließ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);