我在Delphi 6,7和XE2中测试了这个,都显示了这个错误 我想直接比较线程中的两个浮点数,如下所示:
threadvar
a,b : Double;
procedure test;
begin
if a > b then
;
end;
但是在编译时,DCC发生了内部错误。所以我改变了它:
threadvar
a,b : Double;
procedure test;
begin
if a - b > 0 then
;
end;
错误消失了,为什么?
答案 0 :(得分:3)
这显然是编译器中的一个错误。我已向Quality Central报告了该错误,QC#101656。该错误只影响32位编译器,而不是对任何人都有很多安慰!
您可以通过将变量放在如下记录中来解决此问题:
threadvar
r: record
a,b: Double;
end;
procedure test;
begin
if r.a > r.b then
;
end;