基础没有学好,请教各位 ( 积分: 50 )

Y

yxbhw

Unregistered / Unconfirmed
GUEST, unregistred user!
请教一个基础问题:
procedure TForm1.Button1Click(Sender: TObject);
var
d:do
uble ;
begin
d := -12.35;
if d = -12.35 then
showmessage('相等')
else
showmessage('不相等');
//结果竟然是这一句
end;
怎么会出现这种问题?
 
请教一个基础问题:
procedure TForm1.Button1Click(Sender: TObject);
var
d:do
uble ;
begin
d := -12.35;
if d = -12.35 then
showmessage('相等')
else
showmessage('不相等');
//结果竟然是这一句
end;
怎么会出现这种问题?
 
浮点数的问题,一般浮点数不建议用与比较操作!
 
浮点数的精度问题
d = -12.35 左边的都是双精度型 右边的-12.35虽然是浮点型 但不是双精度型
 
procedure TForm1.Button1Click(Sender: TObject);
var
d:Extended;
begin
d := -12.35;
if d= -12.35 then
showmessage('相等')
else
showmessage('不相等');
//现在好了
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
d:do
uble ;
begin
d := -12.35;
if Comparevalue(d,-12.35,0) then
showmessage('相等')
else
showmessage('不相等');
end;
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
892
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部