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