писать так надо
double zz=(5.0/15.0);
double zz=(5.0/15.0);
Ronen:
писать так надо
double zz=(5.0/15.0);
спасибописать так надо
double zz=(5.0/15.0);
Но а если так
int a=5,b=15; double zz; zz=(a/b); Print((MathCeil(zz))," ",(DoubleToStr(zz,4)));
Почему результат: 0 , 0.0000 ?????? Должно быть: 1 , 0,3333
Потому что в MQL нету casting (это когда (double) пишешь перед выражением
и оно в дабл и считается) как в Си или Джава,
поэтому чтоб копутер понял что надо в дабл считать,добавь ченить вроде zz=(1.0*a/b);
вот такие вот заморочки :)))
поэтому чтоб копутер понял что надо в дабл считать,добавь ченить вроде zz=(1.0*a/b);
вот такие вот заморочки :)))
Ronen:
Потому что в MQL нету casting (это когда (double) пишешь перед выражением и оно в дабл и считается) как в Си или Джава,
поэтому чтоб копутер понял что надо в дабл считать,добавь ченить вроде zz=(1.0*a/b);
вот такие вот заморочки :)))
Спасибо но я решил эту проблему так:Потому что в MQL нету casting (это когда (double) пишешь перед выражением и оно в дабл и считается) как в Си или Джава,
поэтому чтоб копутер понял что надо в дабл считать,добавь ченить вроде zz=(1.0*a/b);
вот такие вот заморочки :)))
int a=5,b=15; double zz; zz=NormalizeDouble(a,2)/NormalizeDouble(b,2)
Так корректнее и быстрее: double zz=5.0/15.0;
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
Renat:
Так корректнее и быстрее: double zz=5.0/15.0;
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
Наверняка, введение операции "деления" по стандарту СС++ заняло бы меньше времени, чем объяснения. Который раз уже программисты на "грабли" наступают то. Правда, пришлось бы вводить еще пару операций: "деление нацело" и "остаток от деления нацело".Так корректнее и быстрее: double zz=5.0/15.0;
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
Удачи и попутных трендов.
VladislavVG:
Удачи и попутных трендов.
Вы наверное удивитесь, написав "double zz=5/15;" в C/C++ и также получив
0 :-)
Renat:
Так корректнее и быстрее: double zz=5.0/15.0;
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
Наверняка, введение операции "деления" по стандарту СС++
заняло бы меньше времени, чем объяснения. Который раз уже программисты
на "грабли" наступают то. Правда, пришлось бы вводить еще
пару операций: "деление нацело" и "остаток от деления
нацело".Так корректнее и быстрее: double zz=5.0/15.0;
А double zz=5/15; равно 0 и так и должно быть. Ведь сначала одно целое число делится на другое целое число, получается 0, а затем целочисленный ноль приводится к double.
Удачи и попутных трендов.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему результат: 0 , 0.0000 ?????? Должно быть: 1 , 0,3333