function WillShow(AVal: Double): Boolean;
var
f: Double;
const
ZommRate = 1000;
begin
//f := 1000 * AVal;
//Result := 2800 = Trunc(f);
Result := 2800 = Trunc(ZoomRate * AVal);
end;procedure TForm1.btn1Click(Sender: TObject);
var
f: Double;
begin
f := 2.8;
if WillShow(f) then
ShowMessage('Yeah!')
else
ShowMessage('No!');
end;end.返回的结果是No,
但是使用屏蔽的部分才会提示 Yeah!
是不是这种编译器函数不支持表达式造成的?
另外楼主 你ZommRate 与 ZoomRate 是不是弄错了??
记得我以前解决过,帮你查一下
比较浮点数完全可以参考Dateutils里面的SameTime,精度为-7.
以后遇到编译器的参数,我一定会用局部变量传入,而不是直接写一个表达式。谢谢两位的回答。
trunc是舍去,而round才是四舍五入