[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 470

 
iliaalyoshin >>:


Разные приёмы? Какие, например?

如果(NormalizeDouble(a, 4)==NormalizeDouble(b, 4)){ ...}

 
sergeev >>:

if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }


我也试过了,为了以防万一,我写了4,然后是5,然后是6,而不是Digits。不起作用!
 


谢谢你!的确,这篇文章的内容非常丰富。但我没有在MetaEditor中找到bool CompareDoubles函数...
 


或者说我不太明白,或者说根本就不明白图书馆是什么?
 
iliaalyoshin писал(а)>>


或者说我不太明白,或者说根本就不明白图书馆是什么?


一个用于比较实数的函数
//+------------------------------------------------------------------+
//| correct comparison of 2 doubles                                  |
//+------------------------------------------------------------------+
bool CompareDoubles(double number1,double number2)
  {
   if(NormalizeDouble(number1-number2,8)==0) return(true);
   else return(false);
  }
 
专业人士同志,帮帮我吧。
你能告诉我这里该怎么做吗?

我想从一个文件中读取数字到相应的数组中。

文件中的数字如下。1.2121;1.2323;1.3434;1.4545

我为他们准备了以下数组:双数s1[],s2[],r1[],r2[] 。

在初始化阶段,我读到如下内容

k=0;
//----------------------------------------------

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return;
}
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
S_1 =StrToDouble(FileReadString(Handle));//
R_1 =StrToDouble(FileReadString(Handle));
S_2 =StrToDouble(FileReadString(Handle));
R_2 =StrToDouble(FileReadString(Handle));
s1[k]=S1; s2[k]=S_2; r1[k]=R_1; r2[k]=R_2;
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
//--------------------------------------------------------- 6 --
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение

但是,不幸的是,数组并没有被填入...

建议如何在这里....
 

Посоветуйте, как тут быть....

首先,在csv文件中,元素用", "而不是"; "隔开
其次,你必须用每个文件行的第一个元素来填充数组,因为你首先用FileReadString 检索整个行,然后将其转换为单个实数,而下一个FileRead命令已经在文件的下一行起作用了。

你可以按以下方式安排阅读。

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


它应该是有效的...但不确定 :)

 
Axmed писал(а)>>

首先,在csv文件中,元素之间是用", "而不是"; "分开的。
其次,数组必须填入每个文件字符串的第一个元素,因为你首先用FileReadString命令检索整个字符串,然后将整个字符串转换为单个实数,而下一个命令FileRead已经对文件的下一行起作用。

你可以这样来组织阅读。

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


应该能行...但不确定 :)


默认的分隔符是";",尽管你可以使用任何分隔符。
 
Axmed писал(а)>>

你写错了东西...

 
Vinin писал(а)>>


默认的分隔符是";",不过你可以使用任何分隔符。


CSV -逗号 分隔的数值。", "是默认的分隔符。用"; "分隔的情况就不太常见了,我不确定在MQL4中是否支持它。

你写错了东西...

你到底不喜欢我写的什么......?

原因: