第一天使用Delphi社区IDE,我已经能够创建一个计算器应用程序。我主要做过Python
和R
编程。
但是我在师操作方面遇到了麻烦。我已经硬编码了 2 个值,只是为了确保操作基于浮点数。
我想在面板标题中得到2.5
,当将 5 除以 2 时。
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
(或real
,single
,extended
:阅读有关这些的文档)。
一些额外的提示:
-
5 / 2
工作原理和5 / 2.0
一样好,因为/
运算符总是执行浮点除法。你会得到2.5
. - 德尔菲还有一个整数除法运算符,
div
。5 div 2
产生整数2
。
请注意编译器实际上已经告诉您这一点。它可能指向iAns := 5 / 2.0
告诉您integer
(iAns
的类型)与extended
(右侧的类型)不兼容的行。