[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 470 1...463464465466467468469470471472473474475476477...1145 新评论 --- 2010.03.09 17:27 #4691 iliaalyoshin >>: Разные приёмы? Какие, например? 如果(NormalizeDouble(a, 4)==NormalizeDouble(b, 4)){ ...} iliaalyoshin 2010.03.09 17:36 #4692 sergeev >>: if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... } 我也试过了,为了以防万一,我写了4,然后是5,然后是6,而不是Digits。不起作用! iliaalyoshin 2010.03.09 17:47 #4693 Vinin >>: https://www.mql5.com/ru/articles/1561 谢谢你!的确,这篇文章的内容非常丰富。但我没有在MetaEditor中找到bool CompareDoubles函数... iliaalyoshin 2010.03.09 17:50 #4694 Vinin >>: https://www.mql5.com/ru/articles/1561 或者说我不太明白,或者说根本就不明白图书馆是什么? Victor Nikolaev 2010.03.09 18:05 #4695 iliaalyoshin писал(а)>> 或者说我不太明白,或者说根本就不明白图书馆是什么? 一个用于比较实数的函数 //+------------------------------------------------------------------+ //| correct comparison of 2 doubles | //+------------------------------------------------------------------+ bool CompareDoubles(double number1,double number2) { if(NormalizeDouble(number1-number2,8)==0) return(true); else return(false); } [删除] 2010.03.09 18:12 #4696 专业人士同志,帮帮我吧。 你能告诉我这里该怎么做吗? 我想从一个文件中读取数字到相应的数组中。 文件中的数字如下。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"); // Звуковое сопровождение 但是,不幸的是,数组并没有被填入... 建议如何在这里.... 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. [WARNING CLOSED!] Any newbie 测试实时预测系统 Artem Ipatov 2010.03.10 05:17 #4697 Посоветуйте, как тут быть.... 首先,在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; } 它应该是有效的...但不确定 :) Victor Nikolaev 2010.03.10 05:52 #4698 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; } 应该能行...但不确定 :) 默认的分隔符是";",尽管你可以使用任何分隔符。 Bicus 2010.03.10 05:54 #4699 Axmed писал(а)>>你写错了东西... Artem Ipatov 2010.03.10 06:09 #4700 Vinin писал(а)>> 默认的分隔符是";",不过你可以使用任何分隔符。 CSV -逗号 分隔的数值。", "是默认的分隔符。用"; "分隔的情况就不太常见了,我不确定在MQL4中是否支持它。 你写错了东西... 你到底不喜欢我写的什么......? 1...463464465466467468469470471472473474475476477...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Разные приёмы? Какие, например?如果(NormalizeDouble(a, 4)==NormalizeDouble(b, 4)){ ...}
if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }
我也试过了,为了以防万一,我写了4,然后是5,然后是6,而不是Digits。不起作用!
https://www.mql5.com/ru/articles/1561
谢谢你!的确,这篇文章的内容非常丰富。但我没有在MetaEditor中找到bool CompareDoubles函数...
https://www.mql5.com/ru/articles/1561
或者说我不太明白,或者说根本就不明白图书馆是什么?
或者说我不太明白,或者说根本就不明白图书馆是什么?
一个用于比较实数的函数你能告诉我这里该怎么做吗?
我想从一个文件中读取数字到相应的数组中。
文件中的数字如下。1.2121;1.2323;1.3434;1.4545
我为他们准备了以下数组:双数s1[],s2[],r1[],r2[] 。
在初始化阶段,我读到如下内容
但是,不幸的是,数组并没有被填入...
建议如何在这里....
Посоветуйте, как тут быть....
首先,在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;
}
它应该是有效的...但不确定 :)
首先,在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;
}
应该能行...但不确定 :)
默认的分隔符是";",尽管你可以使用任何分隔符。你写错了东西...
默认的分隔符是";",不过你可以使用任何分隔符。CSV -逗号 分隔的数值。", "是默认的分隔符。用"; "分隔的情况就不太常见了,我不确定在MQL4中是否支持它。
你写错了东西...
你到底不喜欢我写的什么......?