Compartir a través de


Clase CComCurrency

CComCurrency tiene métodos y operadores para crear y administrar un objeto CURRENCY.

Sintaxis

class CComCurrency;

Miembros

Constructores públicos

Nombre Descripción
CComCurrency::CComCurrency El constructor para un objeto CComCurrency.

Métodos públicos

Nombre Descripción
CComCurrency::GetCurrencyPtr Devuelve la dirección de un miembro de datos m_currency.
CComCurrency::GetFraction Llame a este método para devolver el componente de fracción de un objeto CComCurrency.
CComCurrency::GetInteger Llame a este método para devolver el componente entero de un objeto CComCurrency.
CComCurrency::Round Llame a este método para redondear un objeto CComCurrency al valor entero más cercano.
CComCurrency::SetFraction Llame a este método para establecer el componente de fracción de un objeto CComCurrency.
CComCurrency::SetInteger Llame a este método para establecer el componente entero de un objeto CComCurrency.

Operadores públicos

Nombre Descripción
CComCurrency::operator - Este operador se usa para restar en un objeto CComCurrency.
CComCurrency::operator != Compara dos objetos CComCurrency para determinar si no son iguales.
CComCurrency::operator * Este operador se usa para multiplicar en un objeto CComCurrency.
CComCurrency::operator *= Este operador se usa para multiplicar en un objeto CComCurrency y asignarle el resultado.
CComCurrency::operator / Este operador se usa para dividir en un objeto CComCurrency.
CComCurrency::operator /= Este operador se utiliza para dividir en un objeto CComCurrency y asignarle el resultado.
CComCurrency::operator + Este operador se usa para sumar en un objeto CComCurrency.
CComCurrency::operator += Este operador se usa para sumar en un objeto CComCurrency y asignar el resultado al objeto actual.
CComCurrency::operator < Este operador compara dos objetos CComCurrency para determinar el menor.
CComCurrency::operator <= Este operador compara dos objetos CComCurrency para determinar si son iguales o cuál es el menor.
CComCurrency::operator = El operador asigna el objeto CComCurrency a un nuevo valor.
CComCurrency::operator -= Este operador se usa para restar en un objeto CComCurrency y asignarle el resultado.
CComCurrency::operator == Este operador compara dos objetos CComCurrency para determinar si son iguales.
CComCurrency::operator > Este operador compara dos objetos CComCurrency para determinar el mayor.
CComCurrency::operator >= Este operador compara dos objetos CComCurrency para determinar si son iguales o cuál es el mayor.
CComCurrency::operator CURRENCY Convierte un objeto CURRENCY.

Miembros de datos públicos

Nombre Descripción
CComCurrency::m_currency La variable CURRENCY creada por la instancia de clase.

Comentarios

CComCurrency es un contenedor para el tipo de datos CURRENCY. CURRENCY se implementa como un valor entero, de 8 bytes y de dos complementos, escalado por 10 000. Este escalado proporciona un número de punto fijo con 15 dígitos a la izquierda del separador decimal y cuatro dígitos a la derecha. El tipo de datos CURRENCY es útil para cálculos monetarios o para los cálculos de punto fijo, donde la precisión es importante.

El contenedor CComCurrency implementa operaciones aritméticas, de asignación y de comparación para este tipo de punto fijo. Las aplicaciones compatibles se han seleccionado para controlar los errores de redondeo que se pueden producir durante los cálculos de punto fijo.

El objeto CComCurrency da acceso a los números situados a ambos lados del separador decimal en forma de dos componentes: un componente de número entero que almacena el valor situado a la izquierda del separador decimal y un componente de fracción que almacena el valor situado a la derecha del separador decimal. El componente de fracción se almacena internamente como un valor entero entre -9999 (CY_MIN_FRACTION) y +9999 (CY_MAX_FRACTION). El método CComCurrency::GetFraction devuelve un valor escalado por un factor de 10 000 (CY_SCALE).

Al especificar los componentes entero y de fracción de un objeto CComCurrency, recuerde que el componente de fracción es un número de 0 a 9999. Esta consideración es importante cuando se trata de una moneda como el dólar estadounidense. Los importes de dólar se expresan normalmente utilizando solo dos dígitos significativos después del separador decimal. Aunque no se muestren los últimos dos dígitos, se deben tener en cuenta.

Valor Posibles asignaciones CComCurrency
$10.50 CComCurrency(10,5000) o CComCurrency(10.50)
$10.05 CComCurrency(10,500) o CComCurrency(10.05)

Los valores CY_MIN_FRACTION, CY_MAX_FRACTION y CY_SCALE se definen en atlcur.h.

Requisitos

Encabezado: atlcur.h

CComCurrency::CComCurrency

Constructor .

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
Objeto CComCurrency existente.

cySrc
Una variable de tipo CURRENCY.

bSrc, dSrc, fSrc, lSrc, sSrc, ulSrc, usSrc
Valor inicial proporcionado a la variable miembro m_currency.

cSrc
Carácter que contiene el valor inicial dado a la variable miembro m_currency.

nInteger, nFraction
Los componentes enteros y fraccionarios del valor monetario inicial. Para más información, consulte el tema de información general de CComCurrency.

pDispSrc
Puntero IDispatch.

varSrc
Una variable de tipo VARIANT. La configuración regional del subproceso actual se usa para realizar la conversión.

szSrc
Cadena Unicode o ANSI que contiene el valor inicial. La configuración regional del subproceso actual se usa para realizar la conversión.

Comentarios

El constructor establece el valor inicial de CComCurrency::m_currency y acepta una amplia gama de tipos de datos, incluidos enteros, cadenas, números de punto flotante, variables CURRENCY y otros objetos CComCurrency. Si no se proporciona ningún valor, m_currency se establece en 0.

Si se produce un error, como un desbordamiento, los constructores que carecen de una especificación de excepción vacía (throw()) llaman AtlThrow con una descripción del error HRESULT.

Al usar valores de punto flotante o doble para asignar un valor, recuerde que CComCurrency(10.50) es equivalente a CComCurrency(10,5000) y no CComCurrency(10,50).

CComCurrency::GetCurrencyPtr

Devuelve la dirección de un miembro de datos m_currency.

CURRENCY* GetCurrencyPtr() throw();

Valor devuelto

Devuelve la dirección de un miembro de datos m_currency.

CComCurrency::GetFraction

Llame a este método para devolver el componente de fracción de un objeto CComCurrency.

SHORT GetFraction() const;

Valor devuelto

Devuelve el componente fraccionaria del miembro de datos m_currency.

Comentarios

El componente fraccionario es un valor entero de 4 dígitos entre -9999 (CY_MIN_FRACTION) y +9999 (CY_MAX_FRACTION). GetFraction devuelve este valor escalado en 10 000 (CY_SCALE). Los valores CY_MIN_FRACTION, CY_MAX_FRACTION y CY_SCALE se definen en atlcur.h.

Ejemplo

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

CComCurrency::GetInteger

Llame a este método para establecer el componente entero de un objeto CComCurrency.

LONGLONG GetInteger() const;

Valor devuelto

Devuelve el componente entero del miembro de datos m_currency.

Ejemplo

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

CComCurrency::m_currency

Miembro de datos CURRENCY

CURRENCY m_currency;

Comentarios

Este miembro contiene la moneda a la que acceden y manipulan los métodos de esta clase.

CComCurrency::operator -

Este operador se usa para restar en un objeto CComCurrency.

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

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve un objeto CComCurrency que representa el resultado de la resta. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator !=

Este operador compara dos objetos para determinar si son diferentes.

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

Parámetros

cur
Objeto CComCurrency que se va a comparar.

Valor devuelto

Devuelve TRUE si el elemento que se va a comparar no es igual al objeto CComCurrency; de lo contrario, FALSE.

Ejemplo

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

CComCurrency::operator *

Este operador se usa para multiplicar en un objeto CComCurrency.

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

Parámetros

nOperand
El multiplicador.

cur
Objeto CComCurrency utilizado como multiplicador.

Valor devuelto

Devuelve un objeto CComCurrency que representa el resultado de la multiplicación. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator *=

Este operador se usa para multiplicar en un objeto CComCurrency y asignarle el resultado.

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

Parámetros

nOperand
El multiplicador.

cur
Objeto CComCurrency utilizado como multiplicador.

Valor devuelto

Devuelve el objeto CComCurrency actualizado. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator /

Este operador se usa para dividir en un objeto CComCurrency.

CComCurrency operator/(long nOperand) const;

Parámetros

nOperand
Divisor.

Valor devuelto

Devuelve un objeto CComCurrency que representa el resultado de la división. Si el divisor es 0, se producirá un error de aserción.

Ejemplo

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

CComCurrency::operator /=

Este operador se utiliza para dividir en un objeto CComCurrency y asignarle el resultado.

const CComCurrency& operator/= (long nOperand);

Parámetros

nOperand
Divisor.

Valor devuelto

Devuelve el objeto CComCurrency actualizado. Si el divisor es 0, se producirá un error de aserción.

Ejemplo

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

CComCurrency::operator +

Este operador se usa para sumar en un objeto CComCurrency.

CComCurrency operator+(const CComCurrency& cur) const;

Parámetros

cur
Objeto CComCurrency que se va a agregar al objeto original.

Valor devuelto

Devuelve un objeto CComCurrency que representa el resultado de la adición. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator +=

Este operador se usa para sumar en un objeto CComCurrency y asignar el resultado al objeto actual.

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

Parámetros

cur
Objeto CComCurrency.

Valor devuelto

Devuelve el objeto CComCurrency actualizado. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator <

Este operador compara dos objetos CComCurrency para determinar el menor.

bool operator<(const CComCurrency& cur) const;

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve TRUE si el primer objeto es menor que el segundo; en caso contrario, FALSE.

Ejemplo

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

CComCurrency::operator <=

Este operador compara dos objetos CComCurrency para determinar si son iguales o cuál es el menor.

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

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve TRUE si el primer objeto es menor o igual que el segundo; en caso contrario, FALSE.

Ejemplo

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

CComCurrency::operator =

El operador asigna el objeto CComCurrency a un nuevo 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
Un objeto CComCurrency.

cySrc
Una variable de tipo CURRENCY.

sSrc, fSrc, lSrc, bSrc, usSrc, dSrc, cSrc, ulSrc, dSrc
Valor numérico que se va a asignar al objeto CComCurrency.

Valor devuelto

Devuelve el objeto CComCurrency actualizado. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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 se usa para restar en un objeto CComCurrency y asignarle el resultado.

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

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve el objeto CComCurrency actualizado. Si se produce un error, como un desbordamiento, este operador llama a AtlThrow con una HRESULT descripción del error.

Ejemplo

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

CComCurrency::operator ==

Este operador compara dos objetos CComCurrency para determinar si son iguales.

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

Parámetros

cur
El objeto CComCurrency que se va a comparar.

Valor devuelto

Devuelve TRUE si los objetos son iguales (es decir, los miembros de datos m_currency, tanto enteros como fraccionarios, en ambos objetos tienen el mismo valor); FALSE, de lo contrario.

Ejemplo

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

CComCurrency::operator >

Este operador compara dos objetos CComCurrency para determinar el mayor.

bool operator>(const CComCurrency& cur) const;

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve TRUE si el primer objeto es mayor que el segundo objeto; en caso contrario, FALSE.

Ejemplo

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

CComCurrency::operator >=

Este operador compara dos objetos CComCurrency para determinar si son iguales o cuál es el mayor.

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

Parámetros

cur
Un objeto CComCurrency.

Valor devuelto

Devuelve TRUE si la primera entrada es mayor o igual que la segunda; de lo contrario, FALSE.

Ejemplo

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

CComCurrency::operator CURRENCY

Estos operadores se usan para convertir un objeto CComCurrency en un tipo de datos CURRENCY.

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

Valor devuelto

Devuelve una referencia a un CURRENCY objeto .

Ejemplo

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

CComCurrency::Round

Llame a este método para redondear la moneda a un número especificado de posiciones decimales.

HRESULT Roundint nDecimals);

Parámetros

nDecimals
Número de dígitos a los que se redondeará m_currency, en el intervalo de 0 a 4.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Ejemplo

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

CComCurrency::SetFraction

Llame a este método para establecer el componente de fracción de un objeto CComCurrency.

HRESULT SetFraction(SHORT nFraction);

Parámetros

nFraction
Valor que se va a asignar al componente fraccionarios del miembro de datos m_currency. El signo del componente fraccionaria debe ser el mismo que el componente entero y el valor debe estar en el intervalo -9999 (CY_MIN_FRACTION) a +9999 (CY_MAX_FRACTION).

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Ejemplo

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

CComCurrency::SetInteger

Llame a este método para establecer el componente entero de un objeto CComCurrency.

HRESULT SetInteger(LONGLONG nInteger);

Parámetros

nInteger
Valor que se va a asignar al componente entero del miembro de datos m_currency. El signo del componente entero debe coincidir con el signo del componente fraccionarios existente.

nInteger debe estar en el intervalo entre CY_MIN_INTEGER y CY_MAX_INTEGER, incluido. Estos valores se definen en la atlcur.h.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Ejemplo

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

Consulte también

Clase COleCurrency
CURRENCY
Información general de clases