При программировании на языке MQL4 у новичков порой возникают ситуации, когда результаты некоторых математических вычислений отличаются от ожидаемых. При этом программа компилируется и работает, но не так, как нужно. Они начинают разбираться в программе, находят новые "ошибки" в языке, реализации функций и т.п. В большинстве случаев последующий...
这可能是最好的解决方案
在平等的基础上比较双数是不正确的,此外,任务是精确到符号。
看看MT4中的stdlib.mq4文件,有一个正确的双重对比的例子
比较双数()
SZZ:这里有一篇关于这个问题的文章https://www.mql5.com/ru/articles/1561
我想知道你将如何计算对数,用非整数的力量,使用三角学,....使用第三方库,指标...他们都有错误!
如果你需要超百万的精度,你可以使用特殊的外部库,如gnu mp
否则,如果你需要保证精度(当在每个操作中计算误差时),你可以使用各种 "区间库"。
如果这还不够--你可以用多项式来代替数字
但我从来没有见过这种情况,当这种电路真正用于MT 时 :-)
有一个双倍的眼睛 :-)
在平等的基础上比较双打是不正确的,此外,任务是要精确到一个符号
看看MT4中的stdlib.mq4文件,有一个正确的双重比较的例子
比较双数()
好吧,好吧,用CompareDoubles的运行时间飙升了2倍。那么这样就更好了。
好吧,好吧,用CompareDoubles的执行时间飙升了2倍。你最好这样做。
我们谈论的是正确的计算,我现在不能检查你的代码,但这并不困难,你需要将你的例子与在循环中使用DoubleToStr()的例子进行比较,如果没有区别,那么一切都正确。
ZS: 我试着用fmod(),我想我贴了一个例子,它不能正常工作,就像在0.07应该检查 - 立即弹出一个错误
我们谈论的是正确的计算,我现在不能检查你的代码,但这并不难,你需要将你的例子与在循环中使用DoubleToStr()的例子进行比较,如果没有差别,那么一切都正确。
我已经检查过了,并计算了速度,这是最好的方法。当然,除非你需要寻找7个以上的字符。
S.s. 0.7和0.07以及500000000.0001等都计算正确。
但对于500000000.9991,它的处理情况更糟。但在外汇实践中,这几乎不重要。
但在外汇实践中,这几乎不重要。
这取决于问题。如果是交易订单,那么这个问题就没有意义了--价格是以数字为标准的,而手数是相对于最小手数的。
如果是数学建模的问题,可能会有帮助。
这取决于问题,如果是交易订单,那么这个任务根本就没有意义--价格被规范化为数字,而手数是相对于最小手数的。
如果任务是与数学建模有关,它可能是有用的。
当然,不是为了写神经网络=)))说,把价格/地段/金钱存储为带小数点的4字节整数,减少2倍的数据大小,很方便。
在平等的基础上比较双打是不正确的,此外,任务是要精确到一个符号
看看MT4中的stdlib.mq4文件,有一个正确的双重对比的例子
比较双数()
SZZ:这里有一篇关于这个问题的文章https://www.mql5.com/ru/articles/1561
因此,任务是确定x被归一化为多少个数字。因此,它是可以的。除非你懒得写这样的梯子。
除非你懒得写这样的梯子。
没有梯子也可以做,但要花10%的时间。
没有梯子也可以做,但要花10%的时间。
这个:F/=0.0000001;是值得怀疑的。