2x2=5 или я сошел с ума

 
"Ничего не понимаю шеф" сказал колобок... Ну ладно, мультики и шуточки в сторону, тут дело вот в чем.

double temp=10/100;

это выражение вычисляется как 0.000000. Я и так и эдак все равно. Как у Задорнова в монологе, про обрезанную тещей рулетку. Мир перевернулся вверх тормашками, ничего не понимаю.
Просьба к разработчикам сказать или я дурак или мир неправильный или они... Вообщем где правду искать народ, если 2х2="Сам догадайся" :(
 
Если так: double temp=10.0/100.0; то работает, ух хоть полегчало малость...
Братцы не наступайте на мои грабли, очень больно, поверте на слово!
 
Если так: double temp=10.0/100.0; то работает, ух хоть полегчало малость...
Братцы не наступайте на мои грабли, очень больно, поверте на слово!


никакой ошибки нет. так и должно быть. MQL4 - это сишнопадобный язык. в сишнике это норма.
 
Беда в том, что от разработчиков никто не требует соответствия стандартам С, а вот сделать язык более дружелюбным к трейдеру (который не обязан быть хорошим программистом и тем более владеть языком С в совершенстве, со всеми его подводными камнями) - было бы очень уместным.
 
Беда в том, что от разработчиков никто не требует соответствия стандартам С, а вот сделать язык более дружелюбным к трейдеру (который не обязан быть хорошим программистом и тем более владеть языком С в совершенстве, со всеми его подводными камнями) - было бы очень уместным.

А мне нравится порядок и нравятся стандарты. Не гоже менять правила во время игры. Раз уж начали косить под Си, пусть будет Си.
 
Мужики вы че?!!! Я же присваиваю переменной double, а не int!!! Где неявное преобразование типов С/С++. А может скажите, если в функции Принт() вместо строковой переменной вставлю любую другую мне фиг с маслом должно напечататься. Ну знаете! Вообще, зачем вам типы данных в таком языке?
 
Мужики вы че?!!! Я же присваиваю переменной double, а не int!!! Где неявное преобразование типов С/С++. А может скажите, если в функции Принт() вместо строковой переменной вставлю любую другую мне фиг с маслом должно напечататься. Ну знаете! Вообще, зачем вам типы данных в таком языке?

Спокойней, товарисч!
Мужики в порядке.
Преобразование тоже работает как надо.
Тема стара, как эниак.
int 10/ int 100 = int 0
double 0. = int 0
Физичный пример:
Поделите десятидолларовую купюру на 100 маленьких кусочков десятидолларовой купюры.
Сколько долларов получите в результате?
 
double x = 10 / 100;
идет сначало деление, а патом приведение к типу double.
 
Об этом уже писалось многократно.
Разработчиков просили выдавать ПРЕДУПРЕЖДЕНИЕ при компиляции при неявном преобразовании типов.
Но они упорно игнорируют эти просьбы и позволяют людям многократно наступать на одни и те же грабли.

Квотовцы.
Исправьте компилятор!
 
Об этом уже писалось многократно.
Разработчиков просили выдавать ПРЕДУПРЕЖДЕНИЕ при компиляции при неявном преобразовании типов.
Но они упорно игнорируют эти просьбы и позволяют людям многократно наступать на одни и те же грабли.

Квотовцы.
Исправьте компилятор!

К счастью, разработчики тратят достаточно много времени на обдумывание и эксперименты.
Неявные преобразования используются во многих местах и будет выдаваться очень много предупреждений, что принесет гораздо больше вреда чем пользы.

Было бы замечательно, если бы перед выдачей совета производилась самостоятельная попытка применить совет на тестовой ситуации в общем случае и в частном. Зачастую делаются скоропалительные выводы на основе частного случая без оценки последствий в общем.

ps: в детстве для меня стало откровением то, что числа бывают дробными. Целый день я ходил воодушевленный новым знанием и складывал 0.5 + 0.3 = 0.8 и тд. Так и для программистов в свое время становится откровением то, что у компьютерной арифметики вещественных чисел есть определенная точность. И было бы непростительно скрывать от начинающих программистов такое положение дел :)
Причина обращения: