public decimal CalcularTruncandoEmDuasCasasDecimais(decimal valorInicial, int meses) { decimal taxaJuros; try { taxaJuros = _taxaJurosServico.ObterTaxaJuros(); } catch (Exception exception) { Notificar(string.Format("Não foi possível obter uma taxa de juros: {0}", exception.Message)); return(0); } JurosCompostos jurosCompostos = new JurosCompostos { ValorInicial = valorInicial, TaxaJuros = taxaJuros, Meses = meses }; if (!Validar(new ValidacaoJurosCompostos(), jurosCompostos)) { return(0); } decimal valorCalculado = jurosCompostos.Calcular(); decimal valorTruncado = _truncarValoresServico.TruncarValor(valorCalculado, 2); return(valorTruncado); }
public void Deve_Calcular_Juros_Compostos() { // Arrange var tempo = TempoEmMeses.Criar(5).Value; decimal taxa = 0.01m; decimal valorInicial = 100m; // Act var valorCalculado = JurosCompostos.Calcular(valorInicial, tempo, taxa); // Assert Assert.Equal(105.10100501m, valorCalculado); }
public void DeveCalcularJurosCompostos() { JurosCompostos jurosCompostos = new JurosCompostos(); jurosCompostos.ValorInicial = 100; jurosCompostos.TaxaJuros = 0.01M; jurosCompostos.Meses = 5; decimal valorEsperado = 105.10100501m; decimal valorAtual = jurosCompostos.Calcular(); Assert.AreEqual(valorEsperado, valorAtual); }
public async Task <double> GetAsync([FromQuery(Name = "valorinicial")] double?valorInicial, [FromQuery(Name = "meses")] int?meses) { if (valorInicial == null) { throw new ArgumentNullException("valorinicial"); } if (meses == null) { throw new ArgumentNullException("meses"); } return(JurosCompostos.Calcular(valorInicial.Value, await RecuperarTaxaDeJurosAsync(), meses.Value)); }
public async Task <string> Executar(decimal valorInicial, int meses) { if (valorInicial < 1) { this.Erros.Add("valorInicial", "Informe um valor maior que 0"); return(null); } if (meses < 1) { this.Erros.Add("meses", "Informe um valor maior que 0"); return(null); } var juros = await this.apiJurosClient.ObterTaxa(); var jurosDecimal = Convert.ToDecimal(juros); JurosCompostos jurosCompostos = new JurosCompostos(valorInicial, jurosDecimal, meses); var resultado = jurosCompostos.Calcular().ToString("N2"); return(resultado); }
public async Task <Result <decimal> > Handle(CalculaJurosCompostosCommand request, CancellationToken cancellationToken) { // valida tempo var tempoResult = TempoEmMeses.Criar(request.TempoEmMeses); if (tempoResult.IsFailure) { return(Result.Failure <decimal>(tempoResult.Error)); } // buscar taxa var taxaResult = await _taxaServices.BuscaTaxa(cancellationToken); if (taxaResult.IsFailure) { return(Result.Failure <decimal>(taxaResult.Error)); } var taxa = taxaResult.Value; var valor = JurosCompostos.Calcular(request.ValorInicial, tempoResult.Value, taxa); return(Result.Success(valor)); }
public void Calcular_ValorCorreto(double valorInicial, int meses, double valorFinal) { Assert.AreEqual(valorFinal, JurosCompostos.Calcular(valorInicial, 0.01d, meses)); }