Почему Alert отсекает дробную часть?

 
Подскажите, почему так?

 Alert(8/3.3); // дробная часть возвращается

 Alert(8/3);   // дробная часть НЕ возвращается

и

double test=8/3;

Alert(test);  // так тоже дробная часть игнорируется
 
leon_17:
Подскажите, почему так?

Alert(8/3.0);
 
Vitaly Muzichenko:

Я предполагал, что он автоматом делает неявное преобразования по типам чисел

Но почему тогда и так не учитывает дробную часть?

double test=8/3;

Alert(test);

Как тогда вообще им пользоваться если нужно вывести результат вычисления, где в делении участвуют целые числа, а результат может оказаться дробным?

Потому что так тоже не работает:

double test=8/3;

Alert(DoubleToString(test,2));

И вот еще:

 Alert(double(8/3));   // дробная часть НЕ возвращается

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

Кажется начинаю понимать. Так всё работает правильно:

double test_1=8;

double test_2=3;

double test_3=test_1/test_2;

Alert(test_3);
 
leon_17Кажется начинаю понимать. Так всё работает правильно:

Еще вот так дробная часть возвращается

Alert(double(8)/3);
Alert(8.0/3);
int test_1=8;
double test_2=3;
Alert(test_1/test_2);
 
Alert(8.0/3.0);
 
leon_17:
Подскажите, почему так?

Если операции с целыми числами, то и результат целый. Если есть хотя бы одно число дабл, то результат будет дабл.
Причина обращения: