绕过MQL4和MQL5中的Digits(),获取任何数字的小数位数(不仅仅是引号)。 - 页 2

 
fxsaber:

是的,八个。

那为什么。

void OnStart()
{
        double price = 500000000.0001;
        Print( price, ":", Digits_values( price ));
}

Digits_values 返回4 ?

结果:500000000.0001:4

 

小数点后有多少个数字?

void OnStart()
{
        double price = 5000000000.0001;
        Print( price, ":", GetDigits( price ));
}

显然,这么多,电脑都数不过来。

结果:????

 
A100:

那为什么

Digits_values返回4 ?

结果:500000000.0001:4

研究字符串的转换。

 
A100:

小数点后有多少个数字?

显然,这么多,电脑都数不过来。

结果:????

是的,像1/3。

 
A100:

一个好的解决方案通常能正确地工作

我可能没有检查所有的东西,但是当我在MQL4上测试两次时,输出值是正确的

 
fxsaber:

研究投石问路的方法来串联。

这与转换有什么关系?有一个来源号码500000000.0001

问题是它有多少个小数位?答案是4,而你有8。

 
A100:

有一个来源号码500000000.0001

在双打中没有这样的数字。有一个近似的等于它--500000000.00010001016593933105。它被分配给了它。

 
A100:

这与转换有什么关系?有一个初始数字500000000.0001

问题是它有多少个小数位?答案是4,而你有8。

不是 "你有8个",mql默认有8个。我们不能阅读文件吗?

 
Alexandr Sokolov:

我想我不是唯一一个遇到罕见情况的人,我需要得到小数点后的数字,而Digits()函数 只对引号起作用,此外,在任何地方都没有相关信息(至少在写这篇文章时,我以前没有发现,所以我想展示我找到的解决方案)。


事实证明,平庸的本质是简单的,但仍然有一个缺点 - 这个功能不承认零,如果他们之后没有其他数字。例如,当函数后面是0.01时,将返回2,但当后面是0.0000时,将返回0(即它不能看到四个零)。因此,在你的发展中要考虑这个缺点。


MQL4中的代码



你的价值参数是蓝色的,你不觉得有点担心吗?

 
Алексей Тарабанов:

你对你的价值参数是蓝色的这一事实没有一点困扰吗?

由于某种原因,在论坛上是这样,但在编辑器中却和平时一样。