新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1412

 
str+="--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";
 
ANDREY:

我得到了我所需要的

LoY[r]=1.6104---LoY[r]=1.6105---LoY[r]=1.6106---LoY[r ]=1.6107---LoY[r]=1.6108---LoY[r]=1.6109---LoY[r]=1.6110---LoY[r]=1.6111....

而且我还可以要求Print() 代替 索引值,而不是 [r]
如果你能写一个这样的代码的例子,而不是用文字来解释,我将非常感激。
谢谢你的帮助。

这种情况只在发作时发生在我身上.........,今天我已经发作了一次,下一次不会很快发生......

 
Aleksei Stepanenko:

非常感谢您的帮助。你的代码更加紧凑,因此我正在接受它,并着手仔细研究它,以了解它的最小细节。

 
Aleksei Stepanenko:

我已经仔细研究了你的代码。理解了每一个角色。我不明白只有红色的+符号

str+="--LoY["+IntegerToString(r)+"]--,"+DoubleToString(LoY[r],4)+",";
如果你能告诉我这些加号 执行什么功能以及 在哪里可以读到它们,我会很感激。我在科瓦列夫的教程中找不到关于他们的信息。
当我删除这些选项时,编译器给了我一些错误。不幸的是,我的英语不好,所以我不知道他说的是什么意思。

再次感谢您的信息支持。

 
ANDREY:

我已经仔细研究了你的代码。理解了每一个角色。我不明白只有红色的+符号

str+="--LoY["+IntegerToString(r)+"]--,"+DoubleToString(LoY[r],4)+",";
如果你能告诉我这些加号 执行什么功能以及 在哪里可以读到它们,我会很感激。我在科瓦列夫的书中找不到关于他们的信息。
当我删除这些选项时,编译器给了我一些错误。不幸的是,我的英语不好,所以我不知道他说的是什么意思。

再次感谢您的信息支持。

这里有文字的解释,请.........

如果你把数字相加,例如2.3+3.6,就是同一个数字,5.9,如果你把字符串相加 DoubleToString(2.3, 1)+ DoubleToString(3.6, 1),它将是2.33.6的一个字符串。

 

这就对了,阿列克谢说,这只是串联

这可能是你感兴趣的。

a+=4; -это тоже самое, что и a=a+4;
по аналогии:
a-=4;
a*=4;
a/=4;

a++; - означает a=a+1;
a--;

 
Alexey Viktorov:

但是,欢迎用文字进行解释,.........

如果你将数字相加,例如2.3+3.6,将是同一个数字,即5.9,如果你将字符串相加 DoubleToString(2.3, 1)+ DoubleToString(3.6, 1)那么它将是2.33.6的字符串。

谢谢你的提示。

 
Aleksei Stepanenko:

这就对了,阿列克谢说,这只是串联

这可能是你感兴趣的。

谢谢你的提示。

 
Alexey Viktorov:

但这里有一个文字的解释,请.........

如果你将数字相加,例如2.3+3.6,将是同一个数字,即5.9,如果你将字符串相加 DoubleToString(2.3, 1)+ DoubleToString(3.6, 1),它将是2.33.6的一个字符串。

也就是说,在每次迭代时,LoY["IntegerToString(r)"]的值增加1,DoubleToString(LoY[r],4) 的值增加1。

但1的增量不是以我习惯的方式安排的LoY["IntegerToString(r)"]++; 但1的增量是专门安排的LoY["+IntegerToString(r)+"],也就是说,变量被放在正数之间。

我们应该如何处理将一个字符串变量增加2而不是1?通常情况下,这个增量是VARIABLE +=2,但我在代码中应该如何格式化增量为2?

此外,我的数组元素的值将以不同的方式进行,而不是严格地像现在这样。例如,它将是这样的:....

LoY[0]=1.6104,LoY[1]=1.6114,LoY[2]=1.6100,LoY[3]=1.6120,LoY[4]=1.6115,LoY[5]=1.6115,LoY[6]=1.6098, LoY[7]=1.6085,LoY[8]=1.6125,..... 等换句话说,这些值将在代码的不同部分被分配给数组项,而不一定使用循环。
认为我们不能在Print()函数中使用 字符串变量正确显示这样的序列,连接......。


谢谢你的帮助。

 
ANDREY:

也就是说,在每次迭代时,LoY["IntegerToString(r)"]的值增加1,DoubleToString(LoY[r],4)的值也增加了1。

但1的增量不是以我习惯的方式安排的LoY["IntegerToString(r)"]++; 但1的增量是专门安排的LoY["+IntegerToString(r)+"],也就是说,变量被放在正数之间。

我们应该如何处理将一个字符串变量增加2而不是1?通常情况下,这个增量是VARIABLE +=2,但我在代码中应该如何格式化增量为2?

此外,我的数组元素的值将以不同的方式进行,而不是严格地像现在这样。例如,它将是这样的:....

LoY[0]=1.6104,LoY[1]=1.6114,LoY[2]=1.6100,LoY[3]=1.6120,LoY[4]=1.6115,LoY[5]=1.6115,LoY[6]=1.6098, LoY[7]=1.6085,LoY[8]=1.6125,..... 等换句话说,这些值将在代码的不同部分被分配给数组项,而不一定使用循环。
认为我们不能在Print()函数中使用 字符串变量正确显示这样的序列,连接......。


谢谢你的帮助。

IntegerToString()和DoubleToString()函数只是将一个数字表示为一个字符串,传入函数。下面是一个例子

这正是将r数字转换为字符串并将字符串 "添加 "的地方。但在这之前,r的值会发生变化。

我不太明白这个问题,但如果你想从数组中只选择偶数元素,循环应该这样建立

for(int i = 0; i <= 30; i+=2)