使用Delphi Community IDE的第一天,我已经能够创建计算器应用程序。我主要完成了Python
和R
编程。
但是我在分区作战中遇到了麻烦。我已经硬编码2个值,以确保操作基于浮点数。
将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'
这是根据其他条件进行操作的功能:
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;
答案 0 :(得分:3)
iAns
被声明为整数。并且整数类型的变量不能包含2.5
之类的非整数值,而5 / 2.0
就是这种整数。您需要改为使用浮点类型声明iAns
,例如double
(或real
,single
,extended
:读取documentation关于这些)。
一些其他提示:
5 / 2
和5 / 2.0
一样好,因为/
运算符始终执行浮点除法。您将得到2.5
。div
。 5 div 2
产生整数2
。注意编译器实际上已经告诉您了这一点。它可能将您引向iAns := 5 / 2.0
行,告诉您integer
(iAns
的类型)与extended
(右边的类型)不兼容