calculadora de temperatura

Hola, se supone que debo hacer una calculadora de temperatura que acepte grados Celsius o perímetro y convierta esa temperatura a la otra escala. Si se ingresa una temperatura Celsius, se convertirá a Fahrenheit y viceversa.

Instrucciones:

Para ello, tendrá que diseñar y codificar un método para convertir una escala de temperatura en otra y devolver el resultado. Este método único debe tener dos argumentos, uno para el valor de temperatura que se va a convertir y un segundo que indica a qué escala de temperatura se va a convertir.

Su método debe estar codificado para que otra clase o aplicación pueda acceder a él. Además, asegúrese de que solo haya una declaración de devolución en su método.

Hasta ahora he creado este código, pero me muestra 2 pequeños errores y no sé cómo solucionarlos.

** error 1. El valor constante '67' no se puede convertir en un 'char'

error 2. El valor constante '70' no se puede convertir en un 'char' **

espacio de nombres Lab7 {frmTemperatureConverter de clase parcial pública: Form {frmTemperatureConverter público () {InitializeComponent (); }

    private void txtValueToConver_TextChanged(object sender, EventArgs e)
    {

    }

    private void btnConvert_Click(object sender, EventArgs e)
    {
        char chr;
        string str1;
        string str2;
        object[] objArray;
        if (this.txtConvert.Text != "")
        {
            double num1 = double.Parse(this.txtConvert.Text);
            if (this.radCelsius.Checked)
            {
                chr = 67;
                str1 = "farenheit";
                str2 = "celsius";
            }
            else
            {
                chr = 70;
                str1 = "celsius";
                str2 = "farenheit";
            }
            double num2 = Math.Round(this.ConvertTemperature(num1, chr), 2);
            this.lblResult.Text = string.Concat(new object[] { num1, " ", str1, " converts to ", num2, " ", str2 });
        }
        else
        {
            this.lblResult.Text = "Please enter a numeric temperature to convert.";
            this.txtConvert.Focus();
        }
    }

    public double ConvertTemperature(double inTemp, char toScale)
    {
        double num;
        if (toScale == 70)
        {
            num = inTemp * 1.80 + 32.00;
        }
        else
        {
            if (toScale == 67)
            {
                num = (inTemp - 32.00) / 1.80;
            }
            else
            {
                num = inTemp;
            }
        }
        return num;
    }

    private void btnClear_Click(object sender, EventArgs e)
    {
        this.txtConvert.Text = "";
        this.lblResult.Text = "";
        this.txtConvert.Focus();
        this.radCelsius.Checked = true;
    }

    private void btnExit_Click(object sender, EventArgs e)
    {
        base.Close();
    }
}

}

preguntado el 08 de noviembre de 11 a las 16:11

2 Respuestas

El problema es que 67 y 70 no son caracteres, son números enteros.

Lo más simple sería convertir la variable "chr" en un número entero. Entonces probablemente debería cambiar su nombre también, tal vez a "toScale", el mismo que el nombre del parámetro.

O puede dejar la variable "chr" como un carácter y usar los valores 'C' en lugar de 67 y 'F' en lugar de 70. Este método también facilita la comprensión del programa.

respondido 08 nov., 11:20

El problema son esas líneas:

char chr;  
chr = 67;  
chr = 70;  

chr ist de tipo char, por lo que debe convertir este número en char:

chr = (char)67;  

respondido 08 nov., 11:20

gracias, eso resolvió el problema, pero tengo un pequeño error, dice "la variable 'objArray' está declarada pero nunca se usa. ¿Debería eliminar la línea" object [] objArray; "? - Vbbnfnb Ytgjh

seguro, si no necesita la matriz - Wolf Volkmann

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.