华氏温度与摄氏温度之间的转换

我从一开始就有这个问题,这是华氏和摄氏之间的转换。

private void button1_Click(object sender, EventArgs e) { float fahr, cel; if (Celsius.Checked == true) { fahr = float.Parse(textBox1.Text); cel = (5/9)*(fahr-32); richTextBox1.Text = "The Degree in Celsius is:" + cel.ToString() + Environment.NewLine + "cool isn't it!?"; } else if (Fahrenheit.Checked == true ) { cel = float.Parse(textBox1.Text); fahr = ((9 * cel)/5)+ 32; richTextBox1.Text = "The degree in Fahrenheit is:" + fahr.ToString() + Environment.NewLine + "cool is it!?"; } 

当我想从华氏温度得到摄氏温度时它会一直给我0,即使这个公式看起来对我来说也是如此。 这有什么不对?
因为我认为问题出在这里:

  if (Celsius.Checked == true) { fahr = float.Parse(textBox1.Text); cel = (5/9)*(fahr-32); richTextBox1.Text = "The Degree in Celsius is:" + cel.ToString() + Environment.NewLine + "cool isn't it!?"; 

也许我对Ops顺序有问题,但我认为这是真的吗? 感谢帮助。

尝试在那里放置另一个演员,以确保,像这样:

 cel = ((float)5/9)*(fahr-32); 

最有可能5/9评估为整数并给出0.其他选项将是这样的:

 cel = (5f/9f)*(fahr-32); 

尝试

 5.0F/9.0F 

您正在使用整数运算,其中5/9为零。