[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 451

 
bernc:

Т.е. нужна вот такая функция F(8,5464.00) = 85464.00

8.5464/0.0001=85464
 
peshihod:

MathMod() есть деление. Дальше чистая математика: если результат от TimeLocal() делить на 20 каждую секунду (или чаще), то раз в 20 сек остаток будет равен нулю.

Вывод: одну и ту же идею можно реализовать по разному.


А почему именно раз в 20 секунд ? Почему например не в 19 или 17 ?

bool flag = true;
int i=0;
int w=0;
double sum;

int t=20;

int start()
{
sum=TimeLocal() / t;

if (flag)
{
while(i<20)
{

w=w+1;
Alert(+w,"-й, Результат TimeLocal-",+sum);
i++;
sum=sum/20;
Sleep(1000);

}
flag = false;
}
return(0);
}

Тут он равен раз в 11 секунд нулю. Делили на 20, 20 раз.

Сорри за нубские вопросы, просто я это хочу понять .

 

А почему именно 20 раз делите на 20.

Делить то надо до победного ;)

 
peshihod:
8.5464/0.0001=85464

Спасибо.

Но я не это имел ввиду запятая это разделитель триад, а точка разделитель дробной части.

Имею строку 8,5464.00 нужно преобразовать в число. StrToDouble(8,5464.00) вренет 8.

F(8,5464.00) = 85464.00

 

поробуйте сделать такую функцию

{

поиск запятой через https://docs.mql4.com/ru/strings/StringFind

Собирание новой строки из двух частей: строки до зяпатой и строки после запятой https://docs.mql4.com/ru/strings/StringGetChar

Преобразование в число StrToDouble()

}

 

вот наглядный пример, все верно как вы говорили .

Хм...

Как так происходит, что оно точно за 20 секунд привращаеться в 0 . Видь локальное время под числом 8000000000... примерно Блин .. та в чем же тут хитрость ? Может мне просто отдахнуть нужно,эх....

int i=0;
int e;
int w=0;
int start()

{
while(true)
{
e=MathMod(TimeLocal(), 20);
w=w+1;
Alert(+w,"-й, Результат MathMod-",+e);


Sleep(1000); // Спим 1-ну секунду


return(0);
}

 
rlx:

поробуйте сделать такую функцию

{

поиск запятой через https://docs.mql4.com/ru/strings/StringFind

Собирание новой строки из двух частей: строки до зяпатой и строки после запятой https://docs.mql4.com/ru/strings/StringGetChar

Преобразование в число StrToDouble()

}

А другого способа нет а то эта функция долго работать будет.

 

если MathMod(КАКОЕТОЧИСЛО, 20) = 0, то это значит (если мне не изменяет память)

что КАКОЕТОЧИСЛО делится на 20 без остатка.

20 40 60 80 100 120 140 160 и т.д.

 
bernc:

А другого способа нет а то эта функция долго работать будет.



я не знаю как по другому выкинуть из строки запятую.

 
bernc:

Спасибо.

Но я не это имел ввиду запятая это разделитель триад, а точка разделитель дробной части.

Имею строку 8,5464.00 нужно преобразовать в число. StrToDouble(8,5464.00) вренет 8.

F(8,5464.00) = 85464.00



По символьно, через строковые функции, убрать запятую, потом StrToDouble().

Причина обращения: