Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Divisão com inteiros dando número com virgula.

Quando escrevo o código desta forma ele me retorna em número quebrado mesmo utilizando números inteiros, gostaria de saber o porque quando eu declaro uma variável antes e depois faço uma operação ele já me retorna o número quebrado.

            Console.WriteLine("Executando terceiro projeto - Criando variáveis com     pontos flutuantes.");

            double salario = 1250.70;
            double produtoPreco = 7;

            Console.WriteLine("Meu salário é de " + salario + " Reais");


            produtoPreco /= 2;

           Console.WriteLine(produtoPreco);

            Console.WriteLine("A execução terminou, tecle ENTER para finalizar...");
            Console.ReadLine();
1 resposta
solução!

Olá, Jocy. Tudo bom?

Entendo que sua expectativa era de que após a operação produtoPreco /= 2; a saída em Console.WriteLine(produtoPreco) fosse 3, estou correto?

Antes de tudo, note que produtoPreco é uma variável do tipo double - um tipo que admite casas decimais (números quebrados). Quando você escreve o código abaixo:

produtoPreco /= 2;

O compilador transforma em:

produtoPreco = produtoPreco / 2;

Se avaliarmos a expressão à direita do sinal de atribuição, temos produtoPreco / 2 onde 2 é, de fato, um número inteiro! Contudo, a expressão produtoPreco é de um tipo "maior", um tipo que suporta uma gama muito maior de valores, o double!

Deste modo, o resultado da expressão produtoPreco / 2 será do tipo "maior", o double.

Este é o mesmo caso que temos com o exercício seguinte:

double divisao = 5.0 / 2;
Console.WriteLine(divisao); // Mostra 2.5

Tudo bem? Dúvida esclarecida?

Abs.