C# · 12月 25, 2021

c# – 无法将类型’double’隐式转换为’float’

我正在做一个用开尔文,摄氏和华氏温度转换温度的简单程序,但是在用开尔文做任何事情时我都会遇到这个错误: Cannon implicitly convert type ‘double’ to ‘float’

发生错误的行:

public static float FahrenheitToKelvin(float fahrenheit){ return ((fahrenheit – 32) * 5) / 9 + 273.15;}

按钮点击:

private void button1_Click(object sender,EventArgs e){ var input = float.Parse(text@R_235_2419@1.Text); float FahrenResult = FahrenheitToCelsius(input); text@R_235_2419@2.Text = FahrenResult.ToString(); float KelvinResult = FahrenheitToKelvin(input); text@R_235_2419@3.Text = KelvinResult.ToString();}

我试图做的测试方法:

[TestMethod]public void fahrenheitToKelvinBoiling(){ float fahrenheit = 212F; float expected = 373.15F; // TODO: Initialize to an appropriate value float actual; actual = Form1.FahrenheitToKelvin(fahrenheit); Assert.AreEqual(Math.Round(expected,2),Math.Round(actual,2)); // Assert.Inconclusive(“Verify the correctness of this test method.”);}解决方法 试试这个. public static float FahrenheitToKelvin(float fahrenheit) { return ((fahrenheit – 32f) * 5f) / 9f + 273.15f; }

这是有效的,因为它将编译器从识别32 5等变为双倍.数字后面的f告诉编译器它是一个浮点数.