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

porque o double permite estilo string ?

tava observando que na class sacar tem public void Sacar(double valor){ Teoricamente só deveria ir valores tipo numero porem a esse método passa impressão que por trás ele é string por aceitar - ou outro tipo de operadores pq isso acontece ? }

4 respostas

Olá Daniel, tudo bem?

Na verdade o método Sacar aceita somente valores numéricos, principalmente por estar se referindo a dinheiro.

Acredito que você tenha tido essa impressão, por conta da mensagem no momento da exceção, certo? Se for por isso, pense que, se não pudéssemos inserir uma mensagem, seria complicado o usuário saber o motivo da operação não ter dado certo. Então em uma validação dentro do método, podemos inserir uma string.

Inclusive, podemos passar mensagens com o Console.WriteLine, para informar exatamente o que está se passando. Veja:

public void Sacar(double valor)
    {
        if (_saldo < valor)
        {
            Console.WriteLine("Valor maior ao disponível em conta. Verifique seu saldo.");
        }
        _saldo -= valor;
    }

Se ficou com alguma dúvida, fique tranquilo para perguntar novamente.

Abraços!

então ao chamar o método podemos colocar o sinal de menos ou qualquer um exemplo ( Saquevalor( -10 ); e se não validamos ele aceita... a duvida é pq ele aceita esses sinais pois passa impressão que por trás ele é uma string aceitando coisas além do numérico obgd :)

solução!

Na verdade o (-10) é um tipo numérico negativo, e na linguagem ele será um int, que por sua vez cabe dentro de um double.

Então o sinal de menos é aceito, porque números inteiros também podem ser negativos. Ex: (-1) (-2) (-3) (-4) ....

Neste capítulo abaixo é explicado um pouco mais sobre os tipos numéricos

https://cursos.alura.com.br/course/csharp-parte-1-primeiros-passos/task/37971

obgd !

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