初学者的问题 MQL5 MT5 MetaTrader 5 - 页 474

 
Alexey Viktorov:
这还不是全部...https://www.mql5.com/ru/forum/66827
奇怪的好人...哦,好吧...
 
我如何知道一个双数类型的 变量的真实值?问题是,有时千分之一会被打印出来--变量本身是由一个文本字符串形成的,但它要经过一个四舍五入的过程。
 
-Aleks-:
我如何知道一个双数类型的 变量的真实值?问题是,有时成千上万的数字通过打印被抛出--变量本身是由一个文本字符串形成的,但它要经过一个舍入过程。
咳,你需要它做什么?
 
Alexey Kozitsyn:
咳咳。你需要它来做什么?
为了检测计算中的错误 :)
 
-Aleks-:
为了检测计算中的错误 :)
你想比较多个double类型的 值吗?
 
Alexey Kozitsyn:
你想比较几个double类型的 值吗?
并非如此...有一个假设,即数字并不总是有4=3.999999999999999的整数值,四舍五入后的数学运算会形成一个不准确。
 

你能不能从Metatrader 4终端发送电子邮件信息,其方式是拍摄当前图表的截图并放在信息的中间。例子。

欧元兑 美元出现了一个买入信号

<скриншот09122015_eurusd.png>

关于开放的其他信息。

告诉我如何实现这个目标?也许有一个例子或类似的东西,可以重新做。谢谢!
 
-Aleks-:
不完全是...有一个假设,即数字并不总是有4=3.9999999999999的整数值,在进行计算后,你会得到一个四舍五入后的不精确值。

即使出现不准确的情况,也要使用NormalizeDouble()。设置你想要的计算精度。这就是这个函数的作用。

那里的例子似乎描述了你的情况。

你应该注意,当使用Print()输出到期刊时,规范化的数字可能比你预期的包含更多的小数位。比如说。

DoubleToString(a,8)=76.67100000

Print(76.671)=76.67100000000001

 
Alexey Kozitsyn:

即使出现不准确的情况,也要使用NormalizeDouble()。设置你想要的计算精度。这就是这个函数的作用。

那里的例子似乎描述了你的情况。

是的--描述的,是的--我使用它--问题只是如何不通过打印和一般的字符串来获得数据进行分析 :)
 
-Aleks-:
是的--它被描述了,是的--我使用它--问题是如何不通过打印和一般的字符串来获得数据进行分析:)

使用同样的NormalizeDouble()。你得到一个双倍类型 的数字。归一化。简单的Print()就像这样输出。

这里写的是如何正确进行比较:https://www.mql5.com/ru/docs/basis/types/double

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5