Udostępnij za pośrednictwem


CComCurrency Klasa

CComCurrency zawiera metody i operatory do tworzenia obiektu i zarządzania nim CURRENCY .

Składnia

class CComCurrency;

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CComCurrency::CComCurrency Konstruktor obiektu CComCurrency .

Metody publiczne

Nazwa/nazwisko opis
CComCurrency::GetCurrencyPtr Zwraca adres m_currency elementu członkowskiego danych.
CComCurrency::GetFraction Wywołaj tę metodę, aby zwrócić składnik ułamkowy CComCurrency obiektu.
CComCurrency::GetInteger Wywołaj tę metodę, aby zwrócić składnik liczby całkowitej CComCurrency obiektu.
CComCurrency::Round Wywołaj tę metodę CComCurrency , aby zaokrąglić obiekt do najbliższej wartości całkowitej.
CComCurrency::SetFraction Wywołaj tę metodę, aby ustawić składnik ułamkowy CComCurrency obiektu.
CComCurrency::SetInteger Wywołaj tę metodę, aby ustawić składnik liczby całkowitej CComCurrency obiektu.

Operatory publiczne

Nazwa/nazwisko opis
CComCurrency::operator - Ten operator służy do odejmowania CComCurrency obiektu.
CComCurrency::operator != Porównuje dwa CComCurrency obiekty pod kątem nierówności.
CComCurrency::operator * Ten operator służy do mnożenia obiektu CComCurrency .
CComCurrency::operator *= Ten operator służy do mnożenia obiektu CComCurrency i przypisywania go do wyniku.
CComCurrency::operator / Ten operator służy do wykonywania dzielenia CComCurrency na obiekcie.
CComCurrency::operator /= Ten operator służy do wykonywania dzielenia CComCurrency na obiekcie i przypisywania go do wyniku.
CComCurrency::operator + Ten operator służy do dodawania CComCurrency do obiektu.
CComCurrency::operator += Ten operator służy do dodawania CComCurrency do obiektu i przypisywania wyniku do bieżącego obiektu.
CComCurrency::operator < Ten operator porównuje dwa CComCurrency obiekty, aby określić mniejsze.
CComCurrency::operator <= Ten operator porównuje dwa CComCurrency obiekty w celu określenia równości lub mniejszej.
CComCurrency::operator = Ten operator przypisuje CComCurrency obiekt do nowej wartości.
CComCurrency::operator -= Ten operator służy do odejmowania obiektu CComCurrency i przypisywania go do wyniku.
CComCurrency::operator == Ten operator porównuje dwa CComCurrency obiekty pod kątem równości.
CComCurrency::operator > Ten operator porównuje dwa CComCurrency obiekty w celu określenia większego.
CComCurrency::operator >= Ten operator porównuje dwa CComCurrency obiekty w celu określenia równości lub większej.
CComCurrency::operator CURRENCY Rzutuje CURRENCY obiekt.

Elementy członkowskie danych publicznych

Nazwa/nazwisko opis
CComCurrency::m_currency Zmienna utworzona CURRENCY przez wystąpienie klasy.

Uwagi

CComCurrency jest otoką typu CURRENCY danych. CURRENCY jest implementowany jako 8-bajtowa wartość całkowita dwu bajtów skalowana przez 10 000. To skalowanie daje liczbę o stałym punkcie z 15 cyfr po lewej stronie przecinka dziesiętnego i 4 cyfry po prawej stronie. Typ CURRENCY danych jest przydatny w przypadku obliczeń obejmujących pieniądze lub w przypadku obliczeń o stałym punkcie, w których dokładność jest ważna.

Otoka CComCurrency implementuje operacje arytmetyczne, przypisania i porównania dla tego typu stałego punktu. Obsługiwane aplikacje zostały wybrane do kontrolowania błędów zaokrąglania, które mogą wystąpić podczas obliczeń o stałym punkcie.

Obiekt CComCurrency zapewnia dostęp do liczb po obu stronach separatora dziesiętnego w postaci dwóch składników: składnika całkowitego, który przechowuje wartość z lewej strony punktu dziesiętnego i składnika ułamkowego, który przechowuje wartość po prawej stronie punktu dziesiętnego. Składnik ułamkowy jest przechowywany wewnętrznie jako wartość całkowita z zakresu od -9999 (CY_MIN_FRACTION) do +9999 (CY_MAX_FRACTION). Metoda CComCurrency::GetFraction zwraca wartość skalowaną przez współczynnik 10000 (CY_SCALE).

Podczas określania składników całkowitych CComCurrency i ułamkowych obiektu należy pamiętać, że składnik ułamkowy jest liczbą z zakresu od 0 do 9999. Ta kwestia jest ważna w przypadku radzenia sobie z walutą, taką jak dolar amerykański. Kwoty w dolarach są często wyrażane przy użyciu tylko dwóch cyfr znaczących po przecinku dziesiętnego. Mimo że ostatnie dwie cyfry nie są wyświetlane, należy je wziąć pod uwagę.

Wartość Możliwe przypisania CComCurrency
10,50 USD CComCurrency(10,5000) lub CComCurrency(10.50)
10,05 USD CComCurrency(10,500) lub CComCurrency(10.05)

Wartości CY_MIN_FRACTION, CY_MAX_FRACTIONi CY_SCALE są zdefiniowane w pliku atlcur.h.

Wymagania

Nagłówek: 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
Istniejący CComCurrency obiekt.

cySrc
Zmienna typu CURRENCY.

bSrc, dSrc, , fSrc, lSrc, sSrc, , ulSrcusSrc
Początkowa wartość nadana zmiennej składowej m_currency.

cSrc
Znak zawierający początkową wartość nadaną zmiennej składowej m_currency.

nInteger, nFraction
Początkowa wartość pieniężna to liczba całkowita i składniki ułamkowe. Aby uzyskać więcej informacji, zobacz CComCurrency omówienie.

pDispSrc
Wskaźnik IDispatch .

varSrc
Zmienna typu VARIANT. Ustawienia regionalne bieżącego wątku służą do przeprowadzania konwersji.

szSrc
Ciąg Unicode lub ANSI zawierający wartość początkową. Ustawienia regionalne bieżącego wątku służą do przeprowadzania konwersji.

Uwagi

Konstruktor ustawia początkową wartość CComCurrency::m_currency, i akceptuje szeroką gamę typów danych, w tym liczby całkowite, ciągi, liczby zmiennoprzecinkowe, CURRENCY zmienne i inne CComCurrency obiekty. Jeśli żadna wartość nie zostanie podana, m_currency zostanie ustawiona wartość 0.

Jeśli wystąpi błąd, taki jak przepełnienie, konstruktory nie mają pustej specyfikacji wyjątku (throw()) AtlThrow z opisem HRESULT błędu.

W przypadku używania wartości zmiennoprzecinkowych lub podwójnych w celu przypisania wartości należy pamiętać, że CComCurrency(10.50) jest to odpowiednik CComCurrency(10,5000)wartości , a nie CComCurrency(10,50).

CComCurrency::GetCurrencyPtr

Zwraca adres m_currency elementu członkowskiego danych.

CURRENCY* GetCurrencyPtr() throw();

Wartość zwracana

Zwraca adres m_currency elementu członkowskiego danych

CComCurrency::GetFraction

Wywołaj tę metodę, aby zwrócić składnik CComCurrency ułamkowy obiektu.

SHORT GetFraction() const;

Wartość zwracana

Zwraca składnik ułamkowy m_currency elementu członkowskiego danych.

Uwagi

Składnik ułamkowy jest 4-cyfrową wartością całkowitą z zakresu od -9999 (CY_MIN_FRACTION) do +9999 (CY_MAX_FRACTION). GetFraction Zwraca tę wartość skalowaną o 10000 (CY_SCALE). Wartości CY_MIN_FRACTION, CY_MAX_FRACTIONi CY_SCALE są zdefiniowane w pliku atlcur.h.

Przykład

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

CComCurrency::GetInteger

Wywołaj tę metodę, aby uzyskać składnik liczby całkowitej CComCurrency obiektu.

LONGLONG GetInteger() const;

Wartość zwracana

Zwraca składnik liczb całkowitych elementu m_currency członkowskiego danych.

Przykład

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

CComCurrency::m_currency

Element członkowski CURRENCY danych.

CURRENCY m_currency;

Uwagi

Ten element członkowski przechowuje walutę dostępną i manipulowaną metodami tej klasy.

CComCurrency::operator -

Ten operator służy do odejmowania CComCurrency obiektu.

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

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

CComCurrency Zwraca obiekt reprezentujący wynik odejmowania. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator !=

Ten operator porównuje dwa obiekty pod kątem nierówności.

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

Parametry

cur
Obiekt CComCurrency do porównania.

Wartość zwracana

Zwraca wartość TRUE , jeśli porównywany element nie jest równy obiektowi CComCurrency ; w przeciwnym razie FALSEwartość .

Przykład

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

CComCurrency::operator *

Ten operator służy do mnożenia obiektu CComCurrency .

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

Parametry

nOperand
Mnożnik.

cur
Obiekt CComCurrency używany jako mnożnik.

Wartość zwracana

CComCurrency Zwraca obiekt reprezentujący wynik mnożenia. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator *=

Ten operator służy do mnożenia obiektu CComCurrency i przypisywania go do wyniku.

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

Parametry

nOperand
Mnożnik.

cur
Obiekt CComCurrency używany jako mnożnik.

Wartość zwracana

Zwraca zaktualizowany CComCurrency obiekt. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator /

Ten operator służy do wykonywania dzielenia CComCurrency na obiekcie.

CComCurrency operator/(long nOperand) const;

Parametry

nOperand
Dzielnik.

Wartość zwracana

CComCurrency Zwraca obiekt reprezentujący wynik dzielenia. Jeśli dzielnika wynosi 0, wystąpi błąd asercyjności.

Przykład

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

CComCurrency::operator /=

Ten operator służy do wykonywania dzielenia CComCurrency na obiekcie i przypisywania go do wyniku.

const CComCurrency& operator/= (long nOperand);

Parametry

nOperand
Dzielnik.

Wartość zwracana

Zwraca zaktualizowany CComCurrency obiekt. Jeśli dzielnika wynosi 0, wystąpi błąd asercyjności.

Przykład

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

CComCurrency::operator +

Ten operator służy do dodawania CComCurrency do obiektu.

CComCurrency operator+(const CComCurrency& cur) const;

Parametry

cur
Obiekt CComCurrency , który ma zostać dodany do oryginalnego obiektu.

Wartość zwracana

CComCurrency Zwraca obiekt reprezentujący wynik dodawania. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator +=

Ten operator służy do dodawania CComCurrency do obiektu i przypisywania wyniku do bieżącego obiektu.

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

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca zaktualizowany CComCurrency obiekt. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator <

Ten operator porównuje dwa CComCurrency obiekty, aby określić mniejsze.

bool operator<(const CComCurrency& cur) const;

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca wartość TRUE , jeśli pierwszy obiekt jest mniejszy niż drugi, FALSE w przeciwnym razie.

Przykład

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

CComCurrency::operator <=

Ten operator porównuje dwa CComCurrency obiekty w celu określenia równości lub mniejszej.

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

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca TRUE wartość , jeśli pierwszy obiekt jest mniejszy lub równy drugiemu, FALSE w przeciwnym razie.

Przykład

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

CComCurrency::operator =

Ten operator przypisuje CComCurrency obiekt do nowej wartości.

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
Obiekt CComCurrency.

cySrc
Zmienna typu CURRENCY.

sSrc, fSrc, , lSrc, usSrcbSrc, dSrc, , ulSrccSrcdSrc
Wartość liczbowa, która ma zostać przypisana CComCurrency do obiektu.

Wartość zwracana

Zwraca zaktualizowany CComCurrency obiekt. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

Ten operator służy do odejmowania obiektu CComCurrency i przypisywania go do wyniku.

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

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca zaktualizowany CComCurrency obiekt. Jeśli wystąpi błąd, taki jak przepełnienie, ten operator wywołuje AtlThrow błąd z opisem HRESULT błędu.

Przykład

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

CComCurrency::operator ==

Ten operator porównuje dwa CComCurrency obiekty pod kątem równości.

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

Parametry

cur
Obiekt CComCurrency do porównania.

Wartość zwracana

Zwraca TRUE wartość, jeśli obiekty są równe (czyli składowe danych, m_currency zarówno liczba całkowita, jak i ułamkowa, w obu obiektach mają tę samą wartość), FALSE w przeciwnym razie.

Przykład

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

CComCurrency::operator >

Ten operator porównuje dwa CComCurrency obiekty w celu określenia większego.

bool operator>(const CComCurrency& cur) const;

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca wartość TRUE , jeśli pierwszy obiekt jest większy niż drugi, FALSE w przeciwnym razie.

Przykład

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

CComCurrency::operator >=

Ten operator porównuje dwa CComCurrency obiekty w celu określenia równości lub większej.

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

Parametry

cur
Obiekt CComCurrency.

Wartość zwracana

Zwraca TRUE wartość , jeśli pierwszy obiekt jest większy lub równy drugiemu, FALSE w przeciwnym razie.

Przykład

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

CComCurrency::operator CURRENCY

Te operatory są używane do rzutowania CComCurrency obiektu na CURRENCY typ danych.

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

Wartość zwracana

Zwraca odwołanie do CURRENCY obiektu.

Przykład

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

CComCurrency::Round

Wywołaj tę metodę, aby zaokrąglić walutę do określonej liczby miejsc dziesiętnych.

HRESULT Roundint nDecimals);

Parametry

nDecimals
Liczba cyfr, do których m_currency zostanie zaokrąglona, w zakresie od 0 do 4.

Wartość zwracana

Zwraca wartość S_OK powodzenia lub błąd HRESULT po niepowodzeniu.

Przykład

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

CComCurrency::SetFraction

Wywołaj tę metodę, aby ustawić składnik ułamkowy CComCurrency obiektu.

HRESULT SetFraction(SHORT nFraction);

Parametry

nFraction
Wartość, która ma zostać przypisana do składnika ułamkowego m_currency elementu członkowskiego danych. Znak składnika ułamkowego musi być taki sam jak składnik całkowity, a wartość musi należeć do zakresu -9999 (CY_MIN_FRACTION) do +9999 (CY_MAX_FRACTION).

Wartość zwracana

Zwraca wartość S_OK powodzenia lub błąd HRESULT po niepowodzeniu.

Przykład

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

CComCurrency::SetInteger

Wywołaj tę metodę, aby ustawić składnik liczby całkowitej CComCurrency obiektu.

HRESULT SetInteger(LONGLONG nInteger);

Parametry

nInteger
Wartość, która ma zostać przypisana do składnika całkowitego m_currency elementu członkowskiego danych. Znak składnika całkowitego musi być zgodny ze znakiem istniejącego składnika ułamkowego.

nInteger musi znajdować się w zakresie CY_MIN_INTEGER do CY_MAX_INTEGER, włącznie. Te wartości są definiowane w pliku atlcur.h.

Wartość zwracana

Zwraca wartość S_OK powodzenia lub błąd HRESULT po niepowodzeniu.

Przykład

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

Zobacz też

Klasa COleCurrency
CURRENCY
Omówienie klasy