在德尔福将摄氏温度转换为华氏温度和反之亦然

Vaa*_*jan 1 delphi

我正在学习德尔福,由于某些原因,他们使用这种旧语言,但无论如何.我需要构建一个转换Celsius和Fahrenheit的Weather应用程序.

用户必须输入7天天气但这个例子我只想弄清第1天

所以我首先创建单选按钮来选择Celsius和Fahrenheit,然后如果他们选择Celsius我必须将Celsius转换为Fahrenheit并且如果他们选择Fahrenheit我必须将其转换为Celsius.

所以这是我的代码:

 var
   Celsius, Fahrenheit, Day1 : Double;

 begin
   Day1 := fedDay1;
   Celsius := (Day1 - 32)*5/9;
   Fahrenheit := Day1 * 9/5 + 32;

   if radCelsius.checked then
     lblConvertDay1.Caption := FloatToStrF(Fahrenheit, ffFixed, 15, 2);
   else
     lblConvertDay1.Caption := FloatToStr(Celsius, ffFixed, 15, 2);
   end;
Run Code Online (Sandbox Code Playgroud)

它在fedDay1上给出了一个错误.这是一个浮动旋转编辑

请帮忙

Ken*_*ite 5

您不能直接将SpinEdit分配给变量.你必须使用该值.

Day1 := fedDay1.Value;
Run Code Online (Sandbox Code Playgroud)

您的代码必须只进行所需的转换,因为Day1它们已经有了其中之一.因此,如果用户输入了摄氏度值,则只需要将摄氏温度转换为华氏度.如果他们输入华氏温度值,您只需要从华氏温度转换为摄氏温度.

var
  Day1: Double;
  OutVal: Double;
begin
  Day1 := fedDay1.Value;
  if radCelsius.checked then
    OutVal := (9.0 / 5.0) * Day1 + 32     // Cels. entered; convert to Fahrenheit 
  else
    OutVal := (5.0 / 9.0) * (Day1 - 32);  // Fahr. entered; convert to Celsius
  lblConvertDay1.Caption := FloatToStr(OutVal, ffFixed, 15, 2);
end;
Run Code Online (Sandbox Code Playgroud)

如果你使用的是Delphi的最新版本(Delphi 2007有它们,并且它们可以追溯到Delphi 5),那么该StdConvs单元具有可用于转换的预定义函数:

implementation

uses
  StdConvs;

   if ...
      OutVal := CelsiusToFahrenheit(Day1)
   else
      OutVal := FahrenheitToCelsius(Day1);
Run Code Online (Sandbox Code Playgroud)