Скачать MetaTrader 5

zero divide - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrei
2480
Andrei  
Проверка деления на ноль это пережиток вычислительных архитектур и компиляторов прошлого, смысла в этом нет никакого полезного чтобы выбивать из-за это всю программу и тем более следить за этим вручную - логичней было бы присвоить результату максимальное число, или на уровне архитектуры процессора или на уровне компилятора и продолжить работу программы дальше.
burger
20
burger  
Andrei01:
Проверка деления на ноль это пережиток вычислительных архитектур и компиляторов прошлого, смысла в этом нет никакого полезного чтобы выбивать из-за это всю программу и тем более следить за этим вручную - логичней было бы присвоить результату максимальное число, или на уровне архитектуры процессора или на уровне компилятора и продолжить работу программы дальше.

Так : ticket=max ;
Mikhail Kozhemyako
1267
Mikhail Kozhemyako  
Andrei01:
Проверка деления на ноль это пережиток вычислительных архитектур и компиляторов прошлого, смысла в этом нет никакого полезного чтобы выбивать из-за это всю программу и тем более следить за этим вручную - логичней было бы присвоить результату максимальное число, или на уровне архитектуры процессора или на уровне компилятора и продолжить работу программы дальше.

Да неправда) Какой пережиток. В формуле ясно просматривается возможность деления на ноль.

(MAX (HIGH (i - n)) - CLOSE (i)) / (MAX (HIGH (i - n)) - MIN (LOW (i - n))) * 100

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

Boris
3947
Boris  

Вам трудно поставить условие перед формулой?

if(HIGH (i - n) - LOW (i - n) != 0)
X = (HIGH (i - n) - CLOSE (i)) / (HIGH (i - n) - LOW (i - n)) * 100; 

burger
20
burger  
Sepulca:

Да неправда) Какой пережиток. В формуле ясно просматривается возможность деления на ноль.

(MAX (HIGH (i - n)) - CLOSE (i)) / (MAX (HIGH (i - n)) - MIN (LOW (i - n))) * 100

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


Правда!У меня проблема решилась таким способом:

Вырезал блок с входными параметрами и вставил в блок start() {.... сохранил и скомпилировал, выдало кучу ошибок по поводу входных параметров extern ...

и одну ошибку, что не объявлена одна константа которая у меня в коде задается во входных параметрах и объявлена в блоке start() {.... которую и удалил отсюда.И все прошло))))).

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий