Проблема с "double". - страница 2

 
Zhunko:
Я понял, что Вы пытаетесь MQL4 привести в полное соответствие с "С".
Не смотря на некоторую не логичность последнего.

Всё это Вам только кажется.
Нужно привыкнуть, что числа бывают целые и double. Целые можно сравнивать на точное равенство, double нельзя. Согласитесь, в этом есть логика.
Если не очень понятно, представьте себе 1,0000001 курицы, или яблока. Это однозначно больше 1, но от этого больше один вред. Я бы предпочел 1 курицу ровно :)
Можно продолжить типа так. Если я хочу поделить курицу на двоих, я должен решить, буду я её резать или хочу оставить её живой.
Сделать можно и так и эдак, это не очень принципиально. И у всего есть плюсы и минусы.
Есть такая программа AmiBroker, там нет целых чисел, более того, там иногда трудно сказать betta - это массив или число. Лично мне так не очень комфортно, тем не менее я использую эту программу.
Если бы я писал программу типа MT4 я бы хранил цены как целые числа, тогда не надо было бы нормализовать их. И тут дело именно в дискретности цен, а не в каких то моих предпочтениях. Но как видите, можно успешно  работать и ценами double
 
Я пытался сказать об умолчаниях. Они так же удобны, как и то, о чём Вы говорите.
 
Renat:
А что бывает в результате, когда одно целое число (1000) делится на другое целое число (3)?
ps: ничего не случилось - все работало и работает правильно, эту тему неоднократно обсуждали.

Renat писал (а):
Я рекомендую Вам ознакомиться с языком С (MQL4 базируется на С). Иначе будете изобретать велосипед и отвлекать других от работы своими неприменимыми идеями.

Попробуйте не заморачиваться с языком. Возмите и посчитайте на бумажке в столбик. Не забудте вовремя остановиться. Получаемое число бесконечно.
В математике все вычисления по умолчанию сразу производятся с максимальной точностью. В калькуляторах тоже. И только человек по своему желанию ограничивает точность для каких-то своих нужд. И это логично.
И не надо выставлять языки типа "С", как совершенство. Конечно хорошие языки, но не совершенство. До сих пор считаю, меня ни кто не убедит в обратном, что число является целом только в том случае, если у него нет знаков после точки или запятой. А не потому что у него нет точки с нулём.
Смотрите в корень. Причиной целостности числа является отсутствие знаков после точки!!! Всё остальное следствие.
 
Zhunko:
Я пытался сказать об умолчаниях. Они так же удобны, как и то, о чём Вы говорите.

Прошу извинить меня, что вмешиваюсь в Ваше обсуждение.
MQL - это не самостоятельный язык для программирования, а создан специально для обеспечения работы торгового терминала.
Основным требованием которого является надежность. И в данном аспекте должен работать принцип "не навреди".
А по сему, любые отступления, от принятого за основу С++, череваты нехорошими последствиями. О которых мы сейчас даже и вообразить себе не можем.
Для экспрериментов лучше обращаться в компанию Bolland и т.п.- пусть они отработают эти Ваши(скорее всего рациональные) предложения, а через несколько лет, если все будет ОК, то и внедрять в язык MQL.
С уважением,
VBAG
 
Загляните в ветку "Почему MQL4?". Там как раз краткая история развития языка и идея MQL4 как языка для профессиональных программистов.

Подход вида "число - всегда вещественное, не надо заставлять трейдера думать о типах переменных, пусть все будет проще и тд" - это уже пройденный нами этап в первых версиях MQL/MQL2.
 
Читал эту ветку пару месяце назад.
Причина обращения: