Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Erro na atualização saldo

Bom dia

Referente ao curso de typescript, na parte 1. JavaScript vs TypeScript o professor faz a estrutura "if"para implementar as lógicas das transações.

Código JavaScript

let saldo = 3000;

const elementoSaldo = document.querySelector(".saldo-valor .valor");
elementoSaldo.textContent = saldo;

const elementoFormulario = document.querySelector(".block-nova-transacao form");
elementoFormulario.addEventListener("submit", function(event) {
    event.preventDefault();

    if(!elementoFormulario.checkValidity()) {
        alert("Por gentileza, preencher todos os campos da transação!");
        return

        // Checa se todos os campos estão preenchidos
    }
    // Acessar os inputs transacao, valor e data
    const inputTipoTransacao = elementoFormulario.querySelector("#tipoTransacao");
    const inputValor = elementoFormulario.querySelector("#valor");
    const inputData = elementoFormulario.querySelector("#data");    

    // Pegar os valores preenchidos nos inputs transacao, valor e data

    let tipoTransacao = inputTipoTransacao.value;
    let valor = inputValor.value;
    let data = inputData.value;

    // Lógica das transações

    if(tipoTransacao == "Depósito"){
        saldo += valor;
        // Quando for depósito, irá somar o valor ao saldo da conta

    } else if (tipoTransacao == "Transferência" || tipoTransacao == "Pagamento de Boleto"){
        saldo -= valor;
        // Quando for tranferência ou pagamento de boleto, irá diminuir o valor do saldo da conta

    } else {
        alert("A transação selecionada é inválida!");
        return
    }

    // Atualizar o valor do saldo da conta
    
    elementoSaldo.textContent = saldo;

    // Objeto com as informações

    const novaTransacao = {
        tipoTransacao: tipoTransacao,
        valor: valor,
        data: data
    }

    console.log(novaTransacao);

    // Reset do formulario

    elementoFormulario.reset();

});

Porém, quando eu vou fazer o teste para fazer o depósito, o saldo fica bugado conforme a imagem abaxo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O saldo inicial da conta é de R$ 3000,00 conforme feito na videoaula, e foi feito um depósito de R$ 1.68, porém o sald fica bugado. Como concertar isso ?

2 respostas
solução!

Olá Alan!

Pelo código que você compartilhou, parece que o problema está na atualização do saldo. O valor do depósito está sendo tratado como uma string, então quando você tenta somar o valor ao saldo, ocorre uma concatenação em vez de uma adição numérica.

Para corrigir isso, você precisa converter o valor do depósito para um número antes de realizar a operação de soma. Você pode fazer isso utilizando a função parseFloat(). Por exemplo:

saldo += parseFloat(valor);

Dessa forma, o valor será tratado como um número e a soma será realizada corretamente.

Espero que isso resolva o problema! Se tiver mais alguma dúvida, é só me dizer.

Espero ter ajudado e bons estudos!

Bom dia

Beleza, deu certo, Obrigado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software