在逐K线的公式中,调用一个自定义函数:
A:=synxh(B);
debugfile('c:\test.txt','%d',A);
A总是输出0
但在自定义函数中,用了
synxh=1
application.msgout synxh
则能输出1
有个
B:=1;
if ISLASTBAR then
begin
A:=synxh(B);
debugfile('c:\test.txt','%d',A);
end;
你好,很奇怪,结果text.txt文件中是有输出,但总是0,但
A:synxh(B);
则能从图表中看到,最后一个BAR的A是1
然后接下来对返回值的判断还必须这样写:
if A=1.0 then....
而如果用
if A=1 then ...就永远不执行
1.0不等于1么?好奇怪
admin你说的浮点误差问题是任何软件在进行计算后都可能存在的,现在我的问题是简单的赋值算不算计算?
比如:
th:=THOLDING;
if th=1 then
begin
........
end
需要写成:
th:=THOLDING;
if round(th)=1 then
begin
........
end
吗?
更极端的情况是:
AA:=1.0;
BB:=AA;
CC:=BB;
DD:=CC;
是不是经过了反复计算?
是不是要写成:
AA:=1.0;
BB:=round(AA);
CC:=round(BB);
DD:=round(CC);