Ejemplo n.º 1
0
        public override Boolean esIgualQue(Objeto objeto)
        {
            Moneda otraMoneda = null;

            try
            {
                otraMoneda = (Moneda)objeto;
                if (tipoDeMoneda_Renamed != otraMoneda.tipoDeMoneda_Renamed)
                {
                    throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", tipoDeMoneda_Renamed.nombre(), otraMoneda.tipoDeMoneda_Renamed.nombre()));
                }
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Denominacion).Name, objeto.GetType().Name));
            }
            return(ConvertirADouble() == otraMoneda.ConvertirADouble() && tipoDeMoneda_Renamed == otraMoneda.tipoDeMoneda_Renamed ? Boolean.True : Boolean.False);
        }
Ejemplo n.º 2
0
        public override Objeto dividir(Objeto objeto)
        {
            double resultado = 0.0;

            if (objeto is Decimal unDecimal)
            {
                resultado = ConvertirADouble() / unDecimal.Valor;
            }
            else if (objeto is Numero numero)
            {
                resultado = ConvertirADouble() / (double)numero.Valor;
            }
            else
            {
                throw new LanguageException(string.Format("No se puede dividir un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            Moneda nuevoMonto = ObtenerNuevaMonedaEnLaMismaEconomia(Moneda.ConvertirADouble(resultado));

            return(nuevoMonto);
        }