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_FRACTION
i 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
, , ulSrc
usSrc
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_FRACTION
i 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 FALSE
wartość .
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
, usSrc
bSrc
, dSrc
, , ulSrc
cSrc
dSrc
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);