Глюк с NormalizeDouble

 

После нормализации в журнале проскакивают ненормализованные значения

2011.06.28 08:27:31 1998.08.18 00:00:00 Alert: 0.01475 0.0208 0.008449999999999999
2011.06.28 08:27:31 1998.08.17 00:00:00 Alert: 0.01175 0.0208 0.008449999999999999
2011.06.28 08:27:31 1998.08.14 00:00:00 Alert: 0.01175 0.0208 0.008449999999999999
2011.06.28 08:27:31 1998.08.13 00:00:00 Alert: 0.01175 0.0208 0.0095
2011.06.28 08:27:31 1998.08.12 00:00:00 Alert: 0.01175 0.0208 0.01275
2011.06.28 08:27:31 1998.08.10 00:00:00 Alert: 0.01175 0.0208 0.0131
2011.06.28 08:27:31 1998.08.07 00:00:00 Alert: 0.01175 0.0208 0.0131
2011.06.28 08:27:31 1998.08.06 00:00:00 Alert: 0.01175 0.0208 0.0127
2011.06.28 08:27:31 1998.08.05 00:00:00 Alert: 0.01175 0.0208 0.0127
2011.06.28 08:27:31 1998.08.04 00:00:00 Alert: 0.01175 0.0208 0.0133
2011.06.28 08:27:31 1998.08.03 00:00:00 Alert: 0.01175 0.0208 0.0117
2011.06.28 08:27:31 1998.07.31 00:00:00 Alert: 0.01175 0.0208 0.0117
2011.06.28 08:27:31 1998.07.30 00:00:00 Alert: 0.01225 0.0208 0.01115
2011.06.28 08:27:31 1998.07.29 00:00:00 Alert: 0.0075 0.0208 0.0062
2011.06.28 08:27:31 1998.07.27 00:00:00 Alert: 0.00825 0.0208 0.009900000000000001
2011.06.28 08:27:31 1998.07.24 00:00:00 Alert: 0.008750000000000001 0.0208 0.009900000000000001
2011.06.28 08:27:31 1998.07.23 00:00:00 Alert: 0.008750000000000001 0.0208 0.009900000000000001
2011.06.28 08:27:31 1998.07.22 00:00:00 Alert: 0.008750000000000001 0.02195 0.009900000000000001
2011.06.28 08:27:31 1998.07.21 00:00:00 Alert: 0.008750000000000001 0.02195 0.01145
2011.06.28 08:27:31 1998.07.20 00:00:00 Alert: 0.005 0.0174 0.01145

 

 
Может на стадии объявления переменных явно указать кол-во знаков после запятой?
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Поразительно, на участке 1.1.2011-сегодня все ровно.
 

Функция NormalizeDouble не обрезает лишнее. Посмотрите пример в доке.

Для этих целей при выводе на печать там используется функция DoubleToString, только ей нужно задать кол-во знаков после запятой.

 
grell:

После нормализации в журнале проскакивают ненормализованные значения

2011.06.28 08:27:31 1998.08.18 00:00:00 Alert: 0.01475 0.0208 0.008449999999999999
...
2011.06.28 08:27:31 1998.07.27 00:00:00 Alert: 0.00825 0.0208 0.009900000000000001
2011.06.28 08:27:31 1998.07.24 00:00:00 Alert: 0.008750000000000001 0.0208 0.009900000000000001
 

Все представленные значения являются нормализованными.

Пожалуйста, почитайте в документации про точность представления double https://www.mql5.com/ru/docs/basis/types/double

И посмотрите пример здесь https://www.mql5.com/ru/docs/basis/operations/relation 

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

Все представленные значения являются нормализованными.

Пожалуйста, почитайте в документации про точность представления double https://www.mql5.com/ru/docs/basis/types/double

И посмотрите пример здесь https://www.mql5.com/ru/docs/basis/operations/relation 

То есть при отправке ордера это не станет причиной ошибки?
 
0.0652000000000000. Я бы еще понял.
 
grell:
То есть при отправке ордера это не станет причиной ошибки?
Нет, не станет
 
Тогда перед тем как писать эти значения в файл я их обрежу.
 
grell:
Тогда перед тем как писать эти значения в файл я их обрежу.
Алексей уже Вам посоветовал использовать DoubleToString для Ваших целей. Ничего обрезать не надо будет
Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
Преобразование данных / DoubleToString - Документация по MQL5
 
stringo:
Алексей уже Вам посоветовал использовать DoubleToString для Ваших целей. Ничего обрезать не надо будет

Не-не, пока это алерты. Потом все будет лежать в файле. И желательно в удобочитаемом виде. Для чего и воспользуюсь DoubleToString.

Спасибо откликнувшимся. Всего и не прочитаешь.

Причина обращения: