none
função de comparação funciona sempre RRS feed

  • Pergunta

  • Criei uma função para comparar duas variáveis de ruptura de cabos, mas mesmo se rup1 for menor que ruptura || rup2 for menor que ruptura ele exibe a menssagebox. A função é chamada quando aperto o ENTER no texbox (KeyPressUp). O que pode estar errado? Outras funções de comparação que fiz deram certo.

    Double rup1, rup2, rup1b, rup2b, ruptura;
            private void comparacrup()
            {
                

                try
                {
                    rup1 = Convert.ToDouble(crup1.Text);
                    rup2 = Convert.ToDouble(crup2.Text);
                    rup1b = Convert.ToDouble(crup1b.Text);
                    rup2b = Convert.ToDouble(crup2b.Text);
                    ruptura = (Convert.ToDouble(rupcabo.Text) * Convert.ToDouble(ncabos.Text));
                }
                catch
                {
                }
                if (rup1 > ruptura || rup2 > ruptura)
                {
                    MessageBox.Show("A carga de ruptura do cabo está menor que a utilizada no 1º cabo.\n\nEste ponto pode ser vulnerável", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (rup1b > ruptura || rup2b > ruptura)
                {
                    MessageBox.Show("A carga de ruptura do cabo está menor que a utilizada no 1º cabo.\n\nEste ponto pode ser vulnerável", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
               
            }

    domingo, 13 de setembro de 2015 01:57

Respostas

  • Nao ha nada de errado, exceto o resultado que voce queria

    sua primeira comparacao:

    Se rup1 for maior que  ruptura OU rup2 for maior que ruptura exiba a mensagem

    segunda comparaçao:

    Se rup1b for maior que  ruptura OU rup2b for maior que ruptura exiba a mensagem

    Digamos que ruptura for 10 e rup1=11, rup2=5, rup1b=5 e rup2b=20 entao a comparaçao sera sempre verdadeira, pois rup1 é maior que ruptura e rup2b tambem.

    Outra possibilidade é o calculo  (Convert.ToDouble(rupcabo.Text) * Convert.ToDouble(ncabos.Text)); que esteja dando errado... imprima esse valor para ter certeza:

    Double rup1, rup2, rup1b, rup2b, ruptura;
            private void comparacrup()
            {
                
    
                try
                {
                    rup1 = Convert.ToDouble(crup1.Text);
                    rup2 = Convert.ToDouble(crup2.Text);
                    rup1b = Convert.ToDouble(crup1b.Text);
                    rup2b = Convert.ToDouble(crup2b.Text);
                    ruptura = (Convert.ToDouble(rupcabo.Text) * Convert.ToDouble(ncabos.Text));
     MessageBox.Show(ruptura.ToString("0.00000"));
    
                }
                catch
                {
                }
                if (rup1 > ruptura || rup2 > ruptura)
                {
                    MessageBox.Show("A carga de ruptura do cabo está menor que a utilizada no 1º cabo.\n\nEste ponto pode ser vulnerável", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (rup1b > ruptura || rup2b > ruptura)
                {
                    MessageBox.Show("A carga de ruptura do cabo está menor que a utilizada no 1º cabo.\n\nEste ponto pode ser vulnerável", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
               
            }

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Sugerido como Resposta Mr. GMSOFT domingo, 13 de setembro de 2015 11:53
    • Marcado como Resposta Marcos SJ segunda-feira, 14 de setembro de 2015 13:34
    domingo, 13 de setembro de 2015 03:02
    Moderador