1
resposta

Média com casas decimais

Somei 3 inteiros. Declarei uma variável do tipo double para guardar a média aritmética dos 3 inteiros. Ao exibir não mostra as decimais corretamente. Como mostra (50 + 22 + 19) / 3 ? Está mostrando 30.00 quando eu esperava que fosse 30.33

        private void btnMedia_Click(object sender, EventArgs e)
        {
            int idadeSandra = 50;
            int idadeLuz = 22;
            int idadeGiovana = 19;

            double mediaIdade = 0.0;
            mediaIdade = (idadeSandra + idadeLuz + idadeGiovana) / 3;

            MessageBox.Show("Sandra: " + idadeSandra
                + "\n"
                + "Luiz: " + idadeLuz
                + "\n"
                + "Giovana: " + idadeGiovana
                + "\n"
                + "\n"
                + "Média aritmética das idades: " + mediaIdade.ToString("0.00")
                );
        }
1 resposta

Olá Carlos,

Isso está acontecendo pois as variáveis que você está utilizando são do tipo int, após executar a soma dos valores o C# retorna um valor int, e a divisão será feita com valores do tipo inteiro para isso parar de acontecer você terá que fazer o cast com o resultado da soma, convertendo esse resultado para double.

Segue o teste que eu fiz

mediaIdade = (Double)(idadeSandra + idadeLuz + idadeGiovana) / 3;

Espero ter ajudado.