2
respostas

Console.Read(); Retorna um valor errado.

Estou incrementando o projeto do ByteBank, criei uma interação no console, fazendo o usuário inserir o seu nome e cpf para a criação da sua conta corrente. Mas quando o usuario escolhe realizar o deposito e inserir o valor do deposito o Console.Read(); le um valor errado e não o inserido

 if (resp2 == "2")
                {

                    Console.WriteLine("*****************DEPOSITO*******************");
                    Console.Write("QUAL VALOR ? ");
                    double valorDeposito = Console.Read(); //NESSE MOMENTO O CONSOLE LE ERRADO !!!!

                    //Lógica de Depósito

                    conta03.conta.Depositar(valorDeposito);
                    Console.WriteLine("Deposito no valor de R$ " + valorDeposito + ",realizado com sucesso...");


                    Console.WriteLine("1 - MENU PRINCIPAL\n\n" +
                        "2 - SAIR");

                    r = Console.ReadLine();

Não importa o valor inserido dentro do Console.Read(); ele sempre retorna um outro numero, as vezes 51, 52 ou 53.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeComo mostrado na imagem acima, o valor inserido na interação foi 400, mas o valor lido pelo programa foi o de 52. Porque isso está acontecendo ? Alguém pode me ajudar ?...

2 respostas

Bom dia,

Altera a linha de leitura do console para double valorDeposito = double.parse(Console.ReadLine());

Espero que ajude.

Boa tarde!

Isso ocorre devido ao Console.Read(); estar recebendo um valor do tipo "string" e não explicitamente um numeral.

Neste caso altere o campo:

        double valorDeposito = double.Parce(Console.Read()); 

Desta forma, será o valor digitado no console, será convertido para numeral.

Oriento que coloque uma mensagem, solicitando apenas números:

Console.Write("QUAL VALOR ? ");
Console.Write("Digite apenas números);

Espero que tenha ajudado.