0

こんにちは私は摂氏または周囲長のいずれかを受け入れ、その温度を他のスケールに変換する温度計算機を作成することを想定しています。摂氏温度が入力されると、華氏に変換され、その逆も同様です。

指示:

このためには、ある温度スケールを別の温度スケールに変換して結果を返すメソッドを設計およびコーディングする必要があります。この単一のメソッドは、2つの引数を取る必要があります。1つは変換する温度値、もう1つは変換する温度スケールを示します。

メソッドは、別のクラスまたはアプリケーションからアクセスできるようにコーディングする必要があります。また、メソッドにreturnステートメントが1つしかないことを確認してください。

これまでにこのコードを作成しましたが、2つの小さなエラーが表示され、それらを修正する方法がわかりません。

**エラー1.定数値「67」を「char」に変換できません

エラー2。定数値「70」は「char」に変換できません**

名前空間Lab7{パブリック部分クラスfrmTemperatureConverter:フォーム{パブリックfrmTemperatureConverter(){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();
    }
}

}

4

2 に答える 2

1

問題は、67と70が文字ではなく、整数であるということです。

最も簡単なのは、変数「chr」を整数にすることです。次に、おそらくその名前も、パラメーター名と同じように(おそらく「toScale」に)変更する必要があります。

または、変数「chr」をcharのままにして、67の代わりに「C」、70の代わりに「F」の値を使用することもできます。この方法により、プログラムの理解も容易になります。

于 2011-11-08T16:30:32.853 に答える
0

問題はそれらの行です:

char chr;  
chr = 67;  
chr = 70;  

chr istはchar型なので、この数値をcharにキャストする必要があります。

chr = (char)67;  
于 2011-11-08T16:20:10.337 に答える