Ошибки, баги, вопросы - страница 2761
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
0хFF наверное в 4 байта превращает компилятор.
нет, но инициализирует правильно
Добрый день подскажите, как решить проблему:
При оптимизации выскакивает ошибка:
2020.05.31 15:05:32.738 Core 7 genetic pass (0, 53) tested with error "critical runtime error 503 in OnTick function (zero divide, module Experts\e1.ex5, file e1.mq5, line 826, col 73)" in 0:00:00.153
double Mix1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1])), 2);
double Mix2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2);
double Mix = NormalizeDouble((Mix1/Mix2),2);
Что делал:
1) умножал Mix1 и Mix2, чтобы уменьшить кол-во знаков после запятой;
2) менял кол-во знаков при нормализации;
3) Все ZExtLevel проверял, чтобы в них не было 0.
нет, но инициализирует правильно
Почему уверены что нет? По умолчанию в интегер представляет. sizeof об этом и говорит
Почему уверены что нет? По умолчанию в интегер представляет. sizeof об этом и говорит
uint, если быть точным.
Почему уверены что нет? По умолчанию в интегер представляет. sizeof об этом и говорит
так же работает без предупреждений?
потому что есть соответствующая сигнатура ArrayInitialize
а для беззнакового uchar по неизвестной причине не сделали ArrayInitialize()
так же работает без предупреждений?
потому что есть соответствующая сигнатура ArrayInitialize
а для беззнакового uchar по неизвестной причине не сделали ArrayInitialize()
Дело не в сигнатуре или её отсутствии. Дело в том что 4 байта преобразовывается в 1, информация может теоретически потеряться, об этом компилятор и предупреждает.
Попробуйте ArrayInitialize(c, (char)10000);
тоже будет предупреждение
Дело не в сигнатуре или её отсутствии. Дело в том что 4 байта преобразовывается в 1, информация может теоретически потеряться, об этом компилятор и предупреждает.
Попробуйте ArrayInitialize(c, (char)10000);
тоже будет предупреждение
да понятно это все и было изначально
тут вопрос в другом, вот где так уж нужен char?
а uchar я использую в StringToCharArray() и а CryptEncode() и если пройтись по справке еще найдутся
так вот почему проинициализировать массив char я могу используя ArrayInitialize ,а а вот uchar не могу
ладно холивар знатный получился, сомневаюсь что что то изменится ;)
PS: 0xFF = 255 (1 байт )
yes it’s clear that was all from the beginning
here the question is different, this is where char is really needed?
I use uchar in StringToCharArray () and CryptEncode (), and if you go through the help there are still
so that's why i can initialize a char array using ArrayInitialize , but uchar can't
ok, the noble holivar turned out, I doubt that something will change;)
PS: 0xFF = 255 (1 byte)
да понятно это все и было изначально
тут вопрос в другом, вот где так уж нужен char?
а uchar я использую в StringToCharArray() и а CryptEncode() и если пройтись по справке еще найдутся
так вот почему проинициализировать массив char я могу используя ArrayInitialize ,а а вот uchar не могу
ладно холивар знатный получился, сомневаюсь что что то изменится ;)
PS: 0xFF = 255 (1 байт )
Не понял почему вы не можете. с uchar всё также как с char работает.
Вы изначально же спрашивали почему предупреждение, потому что 4 байта в 1. А значение 255 не важно совсем. и 0 и единица могут быть и 1 и 2 и 4 и 8 байт же)
Alain Verleyen:
проверил:
OK, работает без предупреждений компилятора
Спасибо