我从一本敏锐的书开始就有这个问题 这适用于华氏温度和摄氏温度之间的转换。
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的命令有些不对,但我认为这是真的吗?
谢谢你的帮助。
答案 0 :(得分:7)
尝试
5.0F/9.0F
您正在使用整数运算,其中5/9 为零。
答案 1 :(得分:4)
尝试将另一个演员放在那里以确保,就像这样:
cel = ((float)5/9)*(fahr-32);
最有可能5/9作为整数评估并给出0.其他选项将是这样的:
cel = (5f/9f)*(fahr-32);