[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 303

 
还有一个问题。xrust指标(https://www.mql5.com/ru/code/8318)现在我需要将最高和最低的价格发送到专家顾问(有输出到图表)。我已经做了一些故障排除,但我不能得到我需要的值((:一个被发送,另一个等于0。如何显示真实的值?
附加的文件:
 
hoz:

我正在学习如何与图书馆合作。我在写一个专家顾问,有一个这样的功能。

我把它放进包里,一切都在正常工作。但如果你把它连接到库中,在编译专家顾问时就会出现错误。

为什么这个函数在库中不可见?

该库有这个内容,而且编译得很好。

很多的错误。我们能不能看一个例子,通过类比来做?
 

有一个报价,假设Ask=1.20667

从这句话中,你需要去掉小数点后的第三位数字。即取值为1.206,其余的应被丢弃。

请告诉我如何正确操作,因为"正常化"四舍五入,结果是1.20700。

我试过一个变通办法。

DoubleToStr(Ask,3)

是的,它正确地给出了一切-->1.206 。但是,当回到Double 时,它又四舍五入了,但是到了小数点后2位。

StrToDouble(DoubleToStr(Ask,3)) = 1,2100    // 1,2100 - это получившийся результат (т.е. округляет)

我不需要四舍五入。我只需要取小数点后的第2、第3或第4位数字(由我选择),其余的弃之不用。

我怎样才能正确地做呢?

 
Chiripaha:

有一个报价,假设Ask=1.20667

从这句话中,你需要去掉小数点后的第三位数字。即取值为1.206,其余的应被丢弃。

请告诉我如何正确操作,因为"正常化"四舍五入,结果是1.20700。

我试过一个变通办法。

是的,它正确地给出了一切-->1.206 。但是,当回到Double 时,它又四舍五入了,但是到了小数点后2位。

我不需要四舍五入。我只需要取小数点后的第2、第3或第4位数字(由我选择),其余的弃之不用。

我怎样才能正确地做呢?

你的做法是正确的:通过Digits 将双数转换为字符串,然后从结果(StringSubstr())中切去所需的数字。
 
Chiripaha:

有一个报价,假设Ask=1.20667

从这句话中,你需要去掉小数点后的第三位数字。即取值为1.206,其余的应被丢弃。

请告诉我如何正确操作,因为"正常化"四舍五入,结果是1.20700。

我试过一个变通办法。

是的,它正确地给出了一切->1.206 。但是,当回到Double 时,它又四舍五入了,但是到了小数点后2位。

我不需要四舍五入。我只需要取小数点后的第2、第3或第4位数字(由我选择),其余的弃之不用。

我怎样才能正确地做呢?

https://docs.mql4.com/ru/strings/StringSubstr
 

我道歉--我想我可能是误解了。试图澄清,但效果仍然存在。- 这是我的错,对不起。

我需要的不仅仅是一个数字(小数点后的第3、4等),而是整个数字,包括小数点后的第2、3或4位。但是!没有四舍五入。

而问题是,当我把数字放回Double type时,它又四舍五入了。

而整个事情是,即使那个数字以一种愚蠢的大方式先以String类型翻译一个字母,然后再翻译成Double。

它将再次圆起来。- 这就是情况的讽刺。为什么StrToDouble()会将一个数字四舍五入?- 这就是我不明白的地方。该函数的任务是将其从

从一种格式到另一种格式,不要从自己那里 "塑造 "或添加任何东西。但它也 "改善 "了一些东西。

 
Chiripaha:

我道歉--我想我可能是误解了。试图澄清,但效果仍然存在。- 这是我的错,对不起。

我需要的不仅仅是一个数字(小数点后的第3、4等),而是整个数字,包括小数点后的第2、3或4位。但是!没有四舍五入。

而问题是,当我把数字放回Double type时,它又四舍五入了。

而整个事情是,即使那个数字以一种愚蠢的大方式先以String类型翻译一个字母,然后再翻译成Double。

它将再次圆起来。- 这就是情况的讽刺。为什么StrToDouble()会将一个数字四舍五入?- 这就是我不明白的地方。该函数的任务是将其从

从一种格式到另一种格式,不要从自己那里 "塑造 "或添加任何东西。但它也 "改善 "了一些东西。

你知道数字与数字之间的区别吗?
 
Chiripaha:

我道歉--我想我可能是误解了。试图澄清,但效果仍然存在。- 这是我的错,对不起。

我需要的不仅仅是一个数字(小数点后的第3、4等),而是整个数字,包括小数点后的第2、3或4位。但是!没有四舍五入。

而问题是,当我把数字放回Double type时,它又四舍五入了。

而整个事情是,即使那个数字以一种愚蠢的大方式先以String类型的方式翻译一个字母,然后将其翻译成Double。

它将再次圆起来。- 这就是情况的讽刺。为什么StrToDouble()会将一个数字四舍五入?- 这就是我不明白的地方。该函数的任务是将其从

从一种格式到另一种格式,不要从自己那里 "塑造 "或添加任何东西。但它也 "改善 "了一些东西。

一个人必须发展 "听 "的能力!:))
 

:))))))))是的--这就对了。所有的责备都接受!"。- 为此我再次表示歉意。- 这都是(通过特殊练习)强烈发展的后果

创造性、想象力、诗意等方面--都一样,人有两个半球:创造性和理性。我的错是我看到了,却没有纠正它。

所以你所有的说法都是对的,我是有罪的。

但只有问题仍未解决......。

最后如何解决?

如果你认为我没有听到什么,请澄清一下。我理解反馈技术(为了能够 "听到"),但我还没有看到解决方案。

如何获得正确的数字,而不用四舍五入,直到小数点后第三位,例如Ask=1,20667的值?- 像 "StrToDouble(DoubleToStr(Ask,3))的解决方案= 1,2100 // 1,2100是结果(即四舍五入)"没有用。

提前感谢您的宽容和理解。

 
Zhunko:
你知道数字与数字之间的区别吗?


:))是的,我当然明白其中的区别。但在一个道歉和澄清的帖子中,我还是犯了这个错误(如何在不四舍五入的情况下得到正确的数字......),不得不纠正(并没有立即注意到)。这不是一种误解,而是发展想象力的另一面。唉--这就是它的代价。当他们说 "活死人 "或类似的话时,也毫无意义。但如果没有它,就不可能形象地感知到事物的本质。我的意思是,这很正常。不要评判。: )从字面上看,也不是那么好的事情。- 我将努力,包括在你的帮助下,纠正我的沟通。我们将一起使生活更美好、更完美。谢谢你的发言!