我写了一个判断两个变量为符号不同的代码,如下,但不知道为什么不执行。
if (C1*10000)*(C2*10000) < 0 then
begin
//代码1
end
else
begin
//代码2
end
这里的C1、C2之所以要乘以10000,是应为这两个变量值太小,数据为C1=-0.000086、C2=0.000226。
理论上C1、C2只要符号相反,相乘后就小于0啊,也就是条件为真,但结果始终执行的是”代码2“,不知道为何?
你输出下(C1*10000)*(C2*10000) < 0
这个条件判断的返回值1还是0看下
我就是不清楚是为什么结果为“否”,因为我用常用的编程软件比如C、C++等之类的结果就是为“真”。
知道理论是真,你输出下这个判断条件看下。就和你c编程一样遇到问题调试输出下中间值看是多少,看看是这个判断语句返回了false还是true而后面的问题
我知道原因了:这个逻辑运算符“<”的优先级居然大于了前面的乘法运算,和C/C++还有点不一样。把之前的运算加上括号就行了。
不会啊,我这边用这个代码测试没哟问题的,图上也都有开仓信号
C1:=-0.000086;
C2:=0.000226;
if (C1*10000)*(C2*10000) < 0 then buy(1,1,marketr)
[此贴子已经被作者于2015/8/10 10:15:04编辑过]