Partilhar via


CComCurrency Classe

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

CComCurrency tem métodos e operadores para criar e gerir um CURRENCY objeto.

Sintaxe

class CComCurrency;

Membros

Construtores públicos

Nome Description
CComCurrency::CComCurrency O construtor para um CComCurrency objeto.

Métodos públicos

Nome Description
CComCurrency::GetCurrencyPtr Devolve o endereço de um m_currency membro de dados.
CComCurrency::GetFraction Chame este método para devolver a componente fracionária de um CComCurrency objeto.
CComCurrency::GetInteger Chame este método para devolver o componente inteiro de um CComCurrency objeto.
CComCurrency::Round Chame este método para arredondar um CComCurrency objeto ao valor inteiro mais próximo.
CComCurrency::SetFraction Chame este método para definir o componente fracionário de um CComCurrency objeto.
CComCurrency::SetInteger Chame este método para definir o componente inteiro de um CComCurrency objeto.

Operadores públicos

Nome Description
CComCurrency::operator - Este operador é usado para realizar a subtração de um CComCurrency objeto.
CComCurrency::operator != Compara dois CComCurrency objetos para a desigualdade.
CComCurrency::operator * Este operador é usado para realizar a multiplicação de um CComCurrency objeto.
CComCurrency::operator *= Este operador é usado para realizar a multiplicação num CComCurrency objeto e atribuir-lhe o resultado.
CComCurrency::operator / Este operador é usado para realizar divisão num CComCurrency objeto.
CComCurrency::operator /= Este operador é usado para realizar divisão num CComCurrency objeto e atribuir-lhe o resultado.
CComCurrency::operator + Este operador é usado para realizar a adição num CComCurrency objeto.
CComCurrency::operator += Este operador é usado para realizar a adição num CComCurrency objeto e atribuir o resultado ao objeto atual.
CComCurrency::operator < Este operador compara dois CComCurrency objetos para determinar o menor.
CComCurrency::operator <= Este operador compara dois CComCurrency objetos para determinar a igualdade ou o menor.
CComCurrency::operator = Este operador atribui ao CComCurrency objeto um novo valor.
CComCurrency::operator -= Este operador é usado para realizar a subtração de um CComCurrency objeto e atribuir-lhe o resultado.
CComCurrency::operator == Este operador compara dois CComCurrency objetos para igualdade.
CComCurrency::operator > Este operador compara dois CComCurrency objetos para determinar o maior.
CComCurrency::operator >= Este operador compara dois CComCurrency objetos para determinar a igualdade ou o maior.
CComCurrency::operator CURRENCY Lança um CURRENCY objeto.

Membros de dados públicos

Nome Description
CComCurrency::m_currency A CURRENCY variável criada pela tua instância de classe.

Observações

CComCurrency é um wrapper para o CURRENCY tipo de dado. CURRENCY é implementado como um valor inteiro de complemento dois-bytes de 8 bytes, escalado por 10.000. Esta escala apresenta um número de ponto fixo com 15 dígitos à esquerda da vírgula decimal e 4 dígitos à direita. O CURRENCY tipo de dados é útil para cálculos que envolvem dinheiro, ou para quaisquer cálculos de ponto fixo onde a precisão seja importante.

O CComCurrency wrapper implementa operações de aritmética, atribuição e comparação para este tipo de ponto fixo. As aplicações suportadas foram selecionadas para controlar os erros de arredondamento que podem ocorrer durante os cálculos de ponto fixo.

O CComCurrency objeto dá acesso aos números de cada lado do ponto decimal sob a forma de dois componentes: um componente inteiro, que armazena o valor à esquerda do ponto decimal, e um componente fracionário, que armazena o valor à direita do ponto decimal. O componente fracionário é armazenado internamente como um valor inteiro entre -9999 (CY_MIN_FRACTION) e +9999 (CY_MAX_FRACTION). O método CComCurrency::GetFraction devolve um valor escalado por um fator de 10000 (CY_SCALE).

Ao especificar os componentes inteiro e fracionário de um CComCurrency objeto, lembre-se que o componente fracionário é um número no intervalo de 0 a 9999. Esta consideração é importante ao lidar com uma moeda como o dólar norte-americano. Os valores em dólares são normalmente expressos usando apenas dois dígitos significativos após a vírgula decimal. Embora os dois últimos dígitos não sejam apresentados, devem ser tidos em conta.

Valor Possíveis atribuições CComCurrency
$10,50 CComCurrency(10,5000) ou CComCurrency(10.50)
$10,05 CComCurrency(10,500) ou CComCurrency(10.05)

Os valores CY_MIN_FRACTION, CY_MAX_FRACTION, e CY_SCALE estão definidos em atlcur.h.

Requerimentos

Cabeçalho: atlcur.h

CComCurrency::CComCurrency

O construtor.

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

Parâmetros

curSrc
Um objeto existente CComCurrency .

cySrc
Uma variável do tipo CURRENCY.

bSrc, dSrc, fSrc, lSrc, sSrc, ulSrc, usSrc
O valor inicial dado à variável m_currencymembro .

cSrc
Um carácter contendo o valor inicial dado à variável m_currencymembro .

nInteger, nFraction
Os componentes inteiros e fracionários do valor monetário inicial. Para mais informações, consulte a CComCurrency visão geral.

pDispSrc
Um IDispatch ponteiro.

varSrc
Uma variável do tipo VARIANT. A localização do thread atual é usada para realizar a conversão.

szSrc
Uma cadeia Unicode ou ANSI contendo o valor inicial. A localização do thread atual é usada para realizar a conversão.

Observações

O construtor define o valor inicial de CComCurrency::m_currency, e aceita uma vasta gama de tipos de dados, incluindo inteiros, cadeias, números de vírgula flutuante, CURRENCY variáveis e outros CComCurrency objetos. Se não for fornecido valor, m_currency é definido como 0.

Se houver um erro, como um overflow, os construtores que não têm uma especificação de exceção vazia (throw()) chamam AtlThrow com um HRESULT que descreve o erro.

Ao usar valores de ponto flutuante ou duplos para atribuir um valor, lembre-se de que CComCurrency(10.50) é equivalente a CComCurrency(10,5000), e não CComCurrency(10,50)a .

CComCurrency::GetCurrencyPtr

Devolve o endereço de um m_currency membro de dados.

CURRENCY* GetCurrencyPtr() throw();

Valor de retorno

Devolve o endereço de um m_currency membro de dados

CComCurrency::GetFraction

Chame este método para devolver o componente fracionário do CComCurrency objeto.

SHORT GetFraction() const;

Valor de retorno

Devolve o componente fracionário do m_currency elemento de dados.

Observações

O componente fracionário é um valor inteiro de 4 dígitos entre -9999 (CY_MIN_FRACTION) e +9999 (CY_MAX_FRACTION). GetFraction devolve este valor escalado por 10000 (CY_SCALE). Os valores de CY_MIN_FRACTION, CY_MAX_FRACTION, e CY_SCALE estão definidos em atlcur.h.

Example

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

CComCurrency::GetInteger

Chame este método para obter o componente inteiro de um CComCurrency objeto.

LONGLONG GetInteger() const;

Valor de retorno

Devolve o componente inteiro do m_currency elemento de dados.

Example

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

CComCurrency::m_currency

O CURRENCY membro dos dados.

CURRENCY m_currency;

Observações

Este membro detém a moeda acedida e manipulada pelos métodos desta classe.

CComCurrency::operator -

Este operador é usado para realizar a subtração de um CComCurrency objeto.

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

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Devolve um CComCurrency objeto que representa o resultado da subtração. Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator !=

Este operador compara dois objetos para a desigualdade.

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

Parâmetros

cur
O CComCurrency objeto a comparar.

Valor de retorno

Retorna TRUE se o item a comparar não for igual ao CComCurrency objeto; caso contrário, FALSE.

Example

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

CComCurrency::operator *

Este operador é usado para realizar a multiplicação de um CComCurrency objeto.

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

Parâmetros

nOperand
O multiplicador.

cur
O CComCurrency objeto usado como multiplicador.

Valor de retorno

Devolve um CComCurrency objeto que representa o resultado da multiplicação. Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator *=

Este operador é usado para realizar a multiplicação num CComCurrency objeto e atribuir-lhe o resultado.

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

Parâmetros

nOperand
O multiplicador.

cur
O CComCurrency objeto usado como multiplicador.

Valor de retorno

Devolve o objeto atualizado CComCurrency . Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator /

Este operador é usado para realizar divisão num CComCurrency objeto.

CComCurrency operator/(long nOperand) const;

Parâmetros

nOperand
O divisor.

Valor de retorno

Devolve um CComCurrency objeto que representa o resultado da divisão. Se o divisor for 0, ocorrerá uma falha de assertão.

Example

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

CComCurrency::operator /=

Este operador é usado para realizar divisão num CComCurrency objeto e atribuir-lhe o resultado.

const CComCurrency& operator/= (long nOperand);

Parâmetros

nOperand
O divisor.

Valor de retorno

Devolve o objeto atualizado CComCurrency . Se o divisor for 0, ocorrerá uma falha de assertão.

Example

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

CComCurrency::operator +

Este operador é usado para realizar a adição num CComCurrency objeto.

CComCurrency operator+(const CComCurrency& cur) const;

Parâmetros

cur
O CComCurrency objeto a ser adicionado ao objeto original.

Valor de retorno

Devolve um CComCurrency objeto que representa o resultado da adição. Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator +=

Este operador é usado para realizar a adição num CComCurrency objeto e atribuir o resultado ao objeto atual.

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

Parâmetros

cur
O objeto CComCurrency.

Valor de retorno

Devolve o objeto atualizado CComCurrency . Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator <

Este operador compara dois CComCurrency objetos para determinar o menor.

bool operator<(const CComCurrency& cur) const;

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Retorna TRUE se o primeiro objeto for menor que o segundo, FALSE caso contrário.

Example

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

CComCurrency::operator <=

Este operador compara dois CComCurrency objetos para determinar a igualdade ou o menor.

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

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Retorna TRUE se o primeiro objeto for menor ou igual ao segundo, FALSE caso contrário.

Example

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

CComCurrency::operator =

Este operador atribui ao CComCurrency objeto um novo valor.

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

Parâmetros

curSrc
Um objeto CComCurrency.

cySrc
Uma variável do tipo CURRENCY.

sSrc, fSrc, lSrc, bSrc, usSrcdSrc, cSrc, ulSrc, dSrc
O valor numérico a atribuir ao CComCurrency objeto.

Valor de retorno

Devolve o objeto atualizado CComCurrency . Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

Este operador é usado para realizar a subtração de um CComCurrency objeto e atribuir-lhe o resultado.

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

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Devolve o objeto atualizado CComCurrency . Se houver um erro, como um overflow, este operador chama AtlThrow com an HRESULT a descrever o erro.

Example

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

CComCurrency::operator ==

Este operador compara dois CComCurrency objetos para igualdade.

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

Parâmetros

cur
O CComCurrency objeto a comparar.

Valor de retorno

Retorna TRUE se os objetos forem iguais (isto é, os m_currency membros dos dados, tanto inteiros como fracionários, em ambos os objetos têm o mesmo valor), FALSE caso contrário.

Example

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

CComCurrency::operator >

Este operador compara dois CComCurrency objetos para determinar o maior.

bool operator>(const CComCurrency& cur) const;

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Retorna TRUE se o primeiro objeto for maior que o segundo, FALSE caso contrário.

Example

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

CComCurrency::operator >=

Este operador compara dois CComCurrency objetos para determinar a igualdade ou o maior.

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

Parâmetros

cur
Um objeto CComCurrency.

Valor de retorno

Retorna TRUE se o primeiro objeto for maior ou igual ao segundo, FALSE caso contrário.

Example

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

CComCurrency::operator CURRENCY

Estes operadores são usados para lançar um CComCurrency objeto para um CURRENCY tipo de dado.

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

Valor de retorno

Devolve uma referência a um CURRENCY objeto.

Example

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

CComCurrency::Round

Chame este método para arredondar a moeda para um número especificado de casas decimais.

HRESULT Round(int nDecimals);

Parâmetros

nDecimals
O número de dígitos para os quais m_currency será arredondado, no intervalo de 0 a 4.

Valor de retorno

Retornos S_OK do sucesso, ou um erro HRESULT em caso de falha.

Example

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

CComCurrency::SetFraction

Chame este método para definir o componente fracionário de um CComCurrency objeto.

HRESULT SetFraction(SHORT nFraction);

Parâmetros

nFraction
O valor a atribuir ao componente fracionário do m_currency elemento de dados. O sinal do componente fracionário deve ser o mesmo que o componente inteiro, e o valor deve estar no intervalo -9999 (CY_MIN_FRACTION) a +9999 (CY_MAX_FRACTION).

Valor de retorno

Retornos S_OK do sucesso, ou um erro HRESULT em caso de falha.

Example

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

CComCurrency::SetInteger

Chame este método para definir o componente inteiro de um CComCurrency objeto.

HRESULT SetInteger(LONGLONG nInteger);

Parâmetros

nInteger
O valor a ser atribuído ao componente inteiro do membro de dados m_currency . O sinal do componente inteiro deve corresponder ao sinal do componente fracionário existente.

nInteger deve estar no intervalo CY_MIN_INTEGER de CY_MAX_INTEGER, inclusive. Estes valores estão definidos em atlcur.h.

Valor de retorno

Retornos S_OK do sucesso, ou um erro HRESULT em caso de falha.

Example

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

Consulte também

COleCurrency Classe
CURRENCY
Visão geral da classe