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

Erro de conversão

No momento 15:20 do vídeo o professor define a variável C em if(vRenda < 0 ) { C.RendaFamiliar = 0;} else { C.RendaFamiliar = Vrenda}, quando fui efetuar o mesmo código apresentou erro, zero como um inteiro e não podendo converte-lo para string e vRenda não podendo converte-lo implicitamente tipo double para int. alguém poderia me tirar essa dúvida.

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

3 respostas

Pelo teu trecho de código, parece que C.RendaFamiliar é do tipo string. Basta ver a penúltima linha onde você atribui uma string vazia dentro do bloco else. Portanto na atribuição de valores para esse atributo, deve se seguir a mesma lógica. Uma alternativa é utilizar o Object.ToString(), um método presente na classe Object em que todos os objetos a herdam.

Então uma alternativa seria

...

C.RendaFamiliar = 0.ToString();

...

C.RendaFamiliar = vRenda.ToString();

...

E sobre o que você comentou de converter de double para int, está conversão implicita não é possível. Ela deve ser feita de forma explícita, isto é int i = (int) 0.000.

Em outras palavras, a conversão de double para int requer que a conversão seja tipada, ou seja, escrita. Isso ocorre porque existe perda de informações na conversão, já que os valores após a vígula são perdidos. Então escrever e explicitar essa conversão é uma garantia que você sabe que a conversão está sendo realizada e informações estão sendo perdidas.

Segue o link da documentação da microsoft para mais: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/types/casting-and-type-conversions

solução!

Obrigado Vitor pela resposta, eu localizei meu erro, foi no momento de definição do membro da classe coloquei de tipo inconveniente, foi erro de principiante, mas bom que não cometi esse erro mais hahaha.