Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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);