错误、漏洞、问题 - 页 1554

 
-Aleks-:

由于我在另一个主题中没有得到答案,我在这里重复这个问题,也许这将有助于

"

请你告诉我,我的错误是什么。

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);

没有打印OpenSellTime数组中的日期,也没有打印表达式的第二部分 - PriceOpenSell。

而且,找不到%G和%D这样的printf 命令。

"

虽然,任何C语言的教程对你来说也是不错的。
 
Alexey Kozitsyn:
虽然,任何C语言的教程对你来说也是可行的。

谢谢你的答复,但这个链接让人困惑......我不能马上弄清楚--在我开始在论坛上发帖之前,我在帮助中看到了这段文字。

如果我理解正确的话,%d是忽略零,如果有的话,而%G是输出一个没有切断零的值?我不是白痴,但我无法理解帮助,不理解就无法理解为什么我的字符串不能正常工作......

 
-Aleks-:

谢谢你的答复,但这个链接让人困惑......我不能马上弄清楚--在我开始在论坛上发帖之前,我在帮助中看到了这段文字。

如果我理解正确的话,%d是忽略零,如果有的话,而%G是输出值,不切断零?我不傻,但我无法理解帮助,如果我不理解,就无法理解为什么我的字符串不能正常工作......

我在工作中没有使用这个功能,但我认为自己进行简单的实验并不难。
 
-Aleks-:

谢谢你的答复,但这个链接让人困惑......我不能马上弄清楚--在我开始在论坛上发帖之前,我在帮助中看到了这段文字。

如果我理解正确的话,%d是忽略零,如果有的话,而%G是输出值,不切断零?我不傻,但我无法理解帮助,如果我不理解,就无法理解为什么我的字符串不能正常工作......

在此 阅读。
 
Alexey Kozitsyn:
我在工作中没有使用这个功能,但我认为你可以自己轻松地进行简单的实验。

但我确实--我查过它,也用过它,但我搞不清楚具体的语法,因为它不符合规范要求

%[标志][宽度][.精度][{h | l | ll | I32 | I64}]类型

帮助文件中没有提到不是所有的参数都可以使用。而且,最重要的是,不清楚我在哪里有语法错误,也许如果他们能给我指出来,我就能更好地理解此事。

 
Artyom Trishkin:
在这里 阅读。

谢谢你。粗略地读了一遍,寻找正确的信息--事实证明,第一部分是一个模板,我弄错了......对吗?

比如,你需要指定变量所在的地方,在我的例子中,它是一个数组的索引,时间和数字的双倍类型,然后是变量本身。从文章的逻辑来看,它应该是这样的

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);

还是又错了?

 
-Aleks-:

谢谢你。粗略地读了一遍,寻找正确的信息--事实证明,第一部分是一个模板,我弄错了......对吗?

比如,你需要指定变量所在的地方,在我的例子中,它是一个数组的索引,时间和数字的双倍类型,然后是变量本身。从文章的逻辑来看,它应该是这样的

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);

还是又错了?

好吧,那里非常清楚地写着模板--在模板中插入变量的地方都用%符号标记。整个模板用倒逗号括起来。然后,在模板本身之后,列出了模板中指定的逗号分隔的变量。按照模板中的顺序,从左到右依次写出。

还有不同类型的变量及其格式的所有规范。只是不要一目十行,从" 模板上的字符串格式"的标题开始。

 
Artyom Trishkin:

嗯,模板很清楚--在模板中插入变量的地方用%符号表示。整个模板用倒逗号括起来。然后,在模板本身之后,列出模板中的变量,用逗号分隔。按照模板中的顺序,从左到右依次写出。

还有不同类型的变量及其格式的所有规范。只要不看一眼,从" 按模板格式化 字符串 "的标题开始读。

我就是这样写的--在引号中写了模板,然后按顺序写了变量,有什么问题吗?
 
-Aleks-:
我就是这么写的--在倒逗号里写了模板,然后按顺序写了变量,有什么问题吗?

"OpenSellTime[%index必须在此输入]=%time,PriceOpenSell[%index]=%price" - 这是模式吗?

如果是这样,应该是这样的。

"OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f"

值本身应该列在下一个,用逗号分开。

 ,i,OpenSellTime[i],i,PriceOpenSell[i]

总计。

printf("OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f",i,OpenSellTime[i],i,PriceOpenSell[i]);

...好吧......。如果我没有遗漏任何东西...

 

MQL4,DoubleToStr()DoubleToString()。在DoubleToStr()的第二个参数中加入 "默认8"。

代码。

#property strict
void OnStart()
  {
   Print("1) DoubleToStr(0.123456789) = ",DoubleToStr(0.123456789));
   Print("2) DoubleToString(0.123456789) = ",DoubleToString(0.123456789));
  }

在日志中,他们的结果将是=0.12345679,即函数取整的值;在帮助中没有 写。我认为值得多写一些这方面的内容,或者至少把该类型的例子放在那里。

string value1=DoubleToStr(1.28473418, 5);
// содержимое строки value1 - "1.28473"

string value2=DoubleToStr(1.28473418, 3);
// содержимое строки value2 - "1.285"

,其中四舍五入将是可见的。