Проблема с "double".

 
Что случилось с числами и вычислениями типа double?
Может что-то не так делаю? Почему раньше всё было в порядке?
Любые вычисления в результате сводятся к целым числам.
//+------------------------------------------------------------------+
//|                                              Checking Double.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net/"
 
#property indicator_chart_window
 
int start()
 {
  double A = 1000 / 3;
  Comment ("1000 / 3 = ", A, "\nDoubleToStr(A, 3) = ", DoubleToStr (A, 3), "\nNormalizeDouble(A, 3) = ", NormalizeDouble (A, 3));
  return(0);
 }
 
А что бывает в результате, когда одно целое число (1000) делится на другое целое число (3)?

ps: ничего не случилось - все работало и работает правильно, эту тему неоднократно обсуждали.
 
Что надо сделать, чтобы результат был не целый?
По моему, по умолчанию результат должен быть не целым.
 
Одно из значений должно быть double. Например:
double A = 1000 / 3.0;
double A = 1000.0 / 3;
double A = 1000.0 / 3.0;
 
А если в вычислениях эти числа являются результатом других вычислений. Т.е. их явно не видно. Что в этом случае делать?
 
Надо их привести к double. Грубый пример:
double A = 1000 / NormalizeDouble(ваш_integer_результат,0);
или
double A = 1000.0 / ваш_integer_результат;
 
Нашёл конструкцию :
double A = (1000 / 1.0) / 3;
Вам не кажется, что это не совсем правильно?
Может быть сделать все вычисления по умолчанию с максимальной точностью?
 
Я рекомендую Вам ознакомиться с языком С (MQL4 базируется на С). Иначе будете изобретать велосипед и отвлекать других от работы своими неприменимыми идеями.
 
Ну почему же "неприменимые"? Просто Вам напрягаться не охота.  Сделать можно что угодно, если желание есть.
Вы создали язык, который отличается от "С". Почему бы Вам не пойти дальше и совершенствовать язык на благо и удобство пользователей?
 
В результате "совершенствования" кто-то другой будет жаловаться на неправильные вычисления.

Почитайте в документации про приведение типов - там всё это подробно описано. И вычисляется в полном соответствии с представленным описанием.
 
Я понял, что Вы пытаетесь MQL4  привести в полное соответствие с "С".
Не смотря на некоторую не логичность последнего.
Причина обращения: