Condividi tramite


Classe CComCurrency

CComCurrency dispone di metodi e operatori per la creazione e la gestione di un CURRENCY oggetto.

Sintassi

class CComCurrency;

Membri

Costruttori pubblici

Nome Descrizione
CComCurrency::CComCurrency Costruttore per un oggetto CComCurrency.

Metodi pubblici

Nome Descrizione
CComCurrency::GetCurrencyPtr Restituisce l'indirizzo di un membro dati m_currency.
CComCurrency::GetFraction Chiamare questo metodo per restituire il componente frazionario di un oggetto CComCurrency.
CComCurrency::GetInteger Chiamare questo metodo per restituire il componente Integer di un oggetto CComCurrency.
CComCurrency::Round Chiamare questo metodo per arrotondare un oggetto CComCurrency al valore intero più vicino.
CComCurrency::SetFraction Chiamare questo metodo per impostare il componente frazionario di un oggetto CComCurrency.
CComCurrency::SetInteger Chiamare questo metodo per impostare il componente Integer di un oggetto CComCurrency.

Operatori pubblici

Nome Descrizione
CComCurrency::operator - Questo operatore viene usato per eseguire la sottrazione su un oggetto CComCurrency.
CComCurrency::operator != Confronta due oggetti CComCurrency per stabilirne la disuguaglianza.
CComCurrency::operator * Questo operatore viene usato per eseguire la moltiplicazione su un oggetto CComCurrency.
CComCurrency::operator *= Questo operatore viene usato per eseguire la moltiplicazione su un oggetto CComCurrency e per assegnare il risultato.
CComCurrency::operator / Questo operatore viene usato per eseguire la divisione su un oggetto CComCurrency.
CComCurrency::operator /= Questo operatore viene usato per eseguire la divisione su un oggetto CComCurrency e per assegnare il risultato.
CComCurrency::operator + Questo operatore viene usato per eseguire l'addizione su un oggetto CComCurrency.
CComCurrency::operator += Questo operatore viene usato per eseguire l'addizione su un oggetto CComCurrency e per assegnare il risultato all'oggetto corrente.
CComCurrency::operator < Questo operatore confronta due oggetti CComCurrency per determinare il minore.
CComCurrency::operator <= Questo operatore confronta due oggetti CComCurrency per determinare l'uguaglianza o il minore.
CComCurrency::operator = Questo operatore assegna l'oggetto CComCurrency a un nuovo valore.
CComCurrency::operator -= Questo operatore viene usato per eseguire la sottrazione su un oggetto CComCurrency e per assegnare il risultato.
CComCurrency::operator == Questo operatore confronta due oggetti CComCurrency per stabilirne l'uguaglianza.
CComCurrency::operator > Questo operatore confronta due oggetti CComCurrency per determinare il più grande.
CComCurrency::operator >= Questo operatore confronta due oggetti CComCurrency per determinare l'uguaglianza o il più grande.
CComCurrency::operator CURRENCY Esegue il cast di un CURRENCY oggetto .

Membri dati pubblici

Nome Descrizione
CComCurrency::m_currency Variabile CURRENCY creata dall'istanza della classe.

Osservazioni:

CComCurrency è un wrapper per il CURRENCY tipo di dati. CURRENCY viene implementato come valore intero a complemento di 8 byte scalato da 10.000. Questa scalabilità fornisce un numero a virgola fissa con 15 cifre a sinistra del separatore decimale e 4 cifre a destra. Il CURRENCY tipo di dati è utile per i calcoli che coinvolgono denaro o per qualsiasi calcolo a virgola fissa in cui l'accuratezza è importante.

Il CComCurrency wrapper implementa operazioni aritmetiche, di assegnazione e confronto per questo tipo a virgola fissa. Le applicazioni supportate sono state selezionate per controllare gli errori di arrotondamento che possono verificarsi durante i calcoli a virgola fissa.

L'oggetto CComCurrency fornisce l'accesso ai numeri su entrambi i lati del separatore decimale sotto forma di due componenti: un componente integer, che archivia il valore a sinistra del separatore decimale e un componente frazionaria, che archivia il valore a destra del separatore decimale. Il componente frazionaria viene archiviato internamente come valore intero compreso tra -9999 (CY_MIN_FRACTION) e +9999 (CY_MAX_FRACTION). Il metodo CComCurrency::GetFraction restituisce un valore ridimensionato da un fattore pari a 10000 (CY_SCALE).

Quando si specificano i componenti integer e frazionari di un CComCurrency oggetto, tenere presente che il componente frazionaria è un numero compreso nell'intervallo compreso tra 0 e 9999. Questa considerazione è importante quando si tratta di una valuta come il dollaro statunitense. Gli importi in dollari vengono comunemente espressi utilizzando solo due cifre significative dopo il separatore decimale. Anche se le ultime due cifre non vengono visualizzate, devono essere prese in considerazione.

Valore Valori possibili di CComCurrency
$10.50 CComCurrency(10,5000) oppure CComCurrency(10.50)
$10.05 CComCurrency(10,500) oppure CComCurrency(10.05)

I valori CY_MIN_FRACTION, CY_MAX_FRACTIONe CY_SCALE sono definiti in atlcur.h.

Requisiti

Intestazione: atlcur.h

CComCurrency::CComCurrency

Costruttore.

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

Parametri

curSrc
Oggetto CComCurrency esistente.

cySrc
Variabile di tipo CURRENCY.

bSrc, dSrc, fSrc, lSrcsSrc, , ulSrcusSrc
Valore iniziale assegnato alla variabile m_currencymembro .

cSrc
Carattere contenente il valore iniziale assegnato alla variabile m_currencymembro .

nInteger, nFraction
Componenti interi e frazionari del valore monetario iniziale. Per altre informazioni, vedere la CComCurrency panoramica.

pDispSrc
Puntatore IDispatch .

varSrc
Variabile di tipo VARIANT. Le impostazioni locali del thread corrente vengono usate per eseguire la conversione.

szSrc
Stringa Unicode o ANSI contenente il valore iniziale. Le impostazioni locali del thread corrente vengono usate per eseguire la conversione.

Osservazioni:

Il costruttore imposta il valore iniziale di CComCurrency::m_currencye accetta un'ampia gamma di tipi di dati, inclusi numeri interi, stringhe, numeri a virgola mobile, CURRENCY variabili e altri CComCurrency oggetti. Se non viene specificato alcun valore, m_currency è impostato su 0.

Se si verifica un errore, ad esempio un overflow, i costruttori privi di una chiamata AtlThrow specifica di eccezione vuota (throw()) con una HRESULT descrizione dell'errore.

Quando si usano valori a virgola mobile o double per assegnare un valore, tenere presente che CComCurrency(10.50) equivale a e non CComCurrency(10,50)a CComCurrency(10,5000).

CComCurrency::GetCurrencyPtr

Restituisce l'indirizzo di un membro dati m_currency.

CURRENCY* GetCurrencyPtr() throw();

Valore restituito

Restituisce l'indirizzo di un m_currency membro dati

CComCurrency::GetFraction

Chiamare questo metodo per restituire il componente frazionaria dell'oggetto CComCurrency .

SHORT GetFraction() const;

Valore restituito

Restituisce il componente frazionaria del m_currency membro dati.

Osservazioni:

Il componente frazionaria è un valore intero a 4 cifre compreso tra -9999 (CY_MIN_FRACTION) e +9999 (CY_MAX_FRACTION). GetFraction restituisce questo valore ridimensionato di 10000 (CY_SCALE). I valori di CY_MIN_FRACTION, CY_MAX_FRACTIONe CY_SCALE sono definiti in atlcur.h.

Esempio

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

CComCurrency::GetInteger

Chiamare questo metodo per ottenere il componente integer di un CComCurrency oggetto .

LONGLONG GetInteger() const;

Valore restituito

Restituisce il componente integer del m_currency membro dati.

Esempio

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

CComCurrency::m_currency

Membro CURRENCY dati.

CURRENCY m_currency;

Osservazioni:

Questo membro contiene la valuta accessibile e modificata dai metodi di questa classe.

CComCurrency::operator -

Questo operatore viene usato per eseguire la sottrazione su un oggetto CComCurrency.

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

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce un CComCurrency oggetto che rappresenta il risultato della sottrazione. Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator !=

Questo operatore confronta due oggetti per verificare la disuguaglianza.

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

Parametri

cur
L'oggetto CComCurrency da confrontare.

Valore restituito

Restituisce TRUE se l'elemento confrontato non è uguale all'oggetto CComCurrency ; in caso contrario, FALSE.

Esempio

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

CComCurrency::operator *

Questo operatore viene usato per eseguire la moltiplicazione su un oggetto CComCurrency.

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

Parametri

nOperand
Moltiplicatore.

cur
Oggetto CComCurrency utilizzato come moltiplicatore.

Valore restituito

Restituisce un CComCurrency oggetto che rappresenta il risultato della moltiplicazione. Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator *=

Questo operatore viene usato per eseguire la moltiplicazione su un oggetto CComCurrency e per assegnare il risultato.

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

Parametri

nOperand
Moltiplicatore.

cur
Oggetto CComCurrency utilizzato come moltiplicatore.

Valore restituito

Restituisce l'oggetto aggiornato CComCurrency . Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator /

Questo operatore viene usato per eseguire la divisione su un oggetto CComCurrency.

CComCurrency operator/(long nOperand) const;

Parametri

nOperand
Divisore.

Valore restituito

Restituisce un CComCurrency oggetto che rappresenta il risultato della divisione. Se il divisore è 0, si verificherà un errore di asserzione.

Esempio

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

CComCurrency::operator /=

Questo operatore viene usato per eseguire la divisione su un oggetto CComCurrency e per assegnare il risultato.

const CComCurrency& operator/= (long nOperand);

Parametri

nOperand
Divisore.

Valore restituito

Restituisce l'oggetto aggiornato CComCurrency . Se il divisore è 0, si verificherà un errore di asserzione.

Esempio

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

CComCurrency::operator +

Questo operatore viene usato per eseguire l'addizione su un oggetto CComCurrency.

CComCurrency operator+(const CComCurrency& cur) const;

Parametri

cur
Oggetto CComCurrency da aggiungere all'oggetto originale.

Valore restituito

Restituisce un CComCurrency oggetto che rappresenta il risultato dell'addizione. Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator +=

Questo operatore viene usato per eseguire l'addizione su un oggetto CComCurrency e per assegnare il risultato all'oggetto corrente.

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

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce l'oggetto aggiornato CComCurrency . Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator <

Questo operatore confronta due oggetti CComCurrency per determinare il minore.

bool operator<(const CComCurrency& cur) const;

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce TRUE se il primo oggetto è minore del secondo; in caso contrario, FALSE .

Esempio

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

CComCurrency::operator <=

Questo operatore confronta due oggetti CComCurrency per determinare l'uguaglianza o il minore.

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

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce TRUE se il primo oggetto è minore o uguale al secondo, FALSE in caso contrario.

Esempio

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

CComCurrency::operator =

Questo operatore assegna l'oggetto CComCurrency a un nuovo valore.

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

Parametri

curSrc
Oggetto CComCurrency.

cySrc
Variabile di tipo CURRENCY.

sSrc, fSrc, lSrc, bSrc, usSrcdSrc, cSrc, , ulSrcdSrc
Valore numerico da assegnare all'oggetto CComCurrency .

Valore restituito

Restituisce l'oggetto aggiornato CComCurrency . Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

Questo operatore viene usato per eseguire la sottrazione su un oggetto CComCurrency e per assegnare il risultato.

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

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce l'oggetto aggiornato CComCurrency . Se si verifica un errore, ad esempio un overflow, questo operatore chiama AtlThrow con una HRESULT descrizione dell'errore.

Esempio

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

CComCurrency::operator ==

Questo operatore confronta due oggetti CComCurrency per stabilirne l'uguaglianza.

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

Parametri

cur
Oggetto CComCurrency da confrontare.

Valore restituito

Restituisce TRUE se gli oggetti sono uguali, ovvero i m_currency membri dati, sia integer che frazionari, in entrambi gli oggetti hanno lo stesso valore, FALSE in caso contrario.

Esempio

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

CComCurrency::operator >

Questo operatore confronta due oggetti CComCurrency per determinare il più grande.

bool operator>(const CComCurrency& cur) const;

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce TRUE se il primo oggetto è maggiore del secondo; in caso contrario, FALSE .

Esempio

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

CComCurrency::operator >=

Questo operatore confronta due oggetti CComCurrency per determinare l'uguaglianza o il più grande.

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

Parametri

cur
Oggetto CComCurrency.

Valore restituito

Restituisce TRUE se il primo oggetto è maggiore o uguale al secondo, FALSE in caso contrario.

Esempio

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

CComCurrency::operator CURRENCY

Questi operatori vengono usati per eseguire il cast di un CComCurrency oggetto a un CURRENCY tipo di dati.

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

Valore restituito

Restituisce un riferimento a un CURRENCY oggetto .

Esempio

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

CComCurrency::Round

Chiamare questo metodo per arrotondare la valuta a un numero specificato di posizioni decimali.

HRESULT Roundint nDecimals);

Parametri

nDecimals
Numero di cifre a cui m_currency verrà arrotondato, nell'intervallo da 0 a 4.

Valore restituito

Restituisce S_OK l'esito positivo o un errore in caso di errore HRESULT .

Esempio

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

CComCurrency::SetFraction

Chiamare questo metodo per impostare il componente frazionario di un oggetto CComCurrency.

HRESULT SetFraction(SHORT nFraction);

Parametri

nFraction
Valore da assegnare al componente frazionario del m_currency membro dati. Il segno del componente frazionaria deve essere uguale al componente integer e il valore deve essere compreso nell'intervallo compreso tra -9999 (CY_MIN_FRACTION) e +9999 (CY_MAX_FRACTION).

Valore restituito

Restituisce S_OK l'esito positivo o un errore in caso di errore HRESULT .

Esempio

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

CComCurrency::SetInteger

Chiamare questo metodo per impostare il componente Integer di un oggetto CComCurrency.

HRESULT SetInteger(LONGLONG nInteger);

Parametri

nInteger
Valore da assegnare al componente integer del m_currency membro dati. Il segno del componente integer deve corrispondere al segno del componente frazionaria esistente.

nInteger deve essere compreso nell'intervallo CY_MIN_INTEGER CY_MAX_INTEGERcompreso tra , inclusi. Questi valori sono definiti in atlcur.h.

Valore restituito

Restituisce S_OK l'esito positivo o un errore in caso di errore HRESULT .

Esempio

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

Vedi anche

Classe COleCurrency
CURRENCY
Panoramica della classe