gpt4 book ai didi

Delphi:如何正确除以 float

转载 作者:行者123 更新时间:2023-12-02 20:08:20 25 4
gpt4 key购买 nike

第一天使用 Delphi Community IDE,我就能够创建一个计算器应用程序。我主要完成了 PythonR 编程。

但是我在执行分区操作时遇到了麻烦。我硬编码了 2 个值,只是为了确保操作基于 float 。

当将 5 除以 2 时,我想在面板标题中得到 2.5

iAns := 5 / 2.0; yields:

[dcc32 Error] hello_world.pas(189): E2010 Incompatible types: 'Integer' and 'Extended'
[dcc32 Error] hello_world.pas(189): E2010 Incompatible types: 'Integer' and 'Extended'
[dcc32 Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'hello_world.pas'

这是根据 if else 条件进行操作的函数:

procedure TForm1.btnEqualsClick(Sender: TObject);
begin
iNum2 := StrToInt(edt1.Text);
edt1.Clear;
ShowMessage(IntToStr(iNum1));
ShowMessage(IntToStr(iNum2));

if Operant = '+' then
begin
iAns := iNum1 + iNum2;
pnl1.Caption := IntToStr(iAns);
end
else if Operant = '-' then
begin
iAns := iNum1 - iNum2;
pnl1.Caption := IntToStr(iAns);
end
else if Operant = '*' then
begin
iAns := iNum1 * iNum2;
pnl1.Caption := IntToStr(iAns);
end
else if Operant = '/' then
begin
iAns := 5 / 2.0;
pnl1.Caption := FloatToStr(iAns);
end
end;

end.

更新 1:

var
Form1: TForm1;
iNum1, iNum2, iAns : Integer;
rNum1, rNum2, rAns : Integer;
Operant : String;

最佳答案

iAns 被声明为整数。整数类型的变量不能保存像 2.5 这样的非整数值,这是通过 5/2.0 得到的。您需要使用浮点类型来声明 iAns,例如 double(或 realsingle扩展:阅读 documentation 关于这些)。

一些额外的提示:

  • 5/2 的工作效果与 5/2.0 一样,因为 / 运算符始终执行浮点除法。您将获得 2.5
  • Delphi 还有一个整数除法运算符 div5 div 2 生成整数 2

请注意编译器实际上是如何告诉您这一点的。它可能会向您指出 iAns := 5/2.0 行,告诉您 integer (iAns 的类型)与 integer 不兼容 extend(右侧的类型)。

关于Delphi:如何正确除以 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54170240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com