[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 451

 
bernc:

Ou seja, você precisa desta função F(8.5464,00) = 85464,00

8.5464/0.0001=85464
 
peshihod:

MathMod() é a divisão. O resto é pura matemática: se o resultado de TimeLocal() for dividido por 20 a cada segundo (ou mais frequentemente), então a cada 20 segundos o restante será zero.

Conclusão: a mesma idéia pode ser implementada de diferentes maneiras.


Por que eu tenho que fazer isso a cada 20 segundos? Por que não aos 19 ou 17 anos?

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);
}

Aqui é igual a zero a cada 11 segundos. Dividido por 20, 20 vezes.

Desculpe pelas perguntas núbias, é apenas algo que eu quero entender.

 

Por que você divide por 20 vezes exatamente?

Você tem que dividir até ganhar ;)

 
peshihod:
8.5464/0.0001=85464

Obrigado.

Mas não era isso que eu queria dizer, a vírgula é o separador de tríades e o ponto separa a parte fracionária.

Eu tenho um fio 8.5464,00 Preciso convertê-lo para um número. StrToDouble(8.5464,00) leva 8.

F(8,5464.00) = 85464.00

 

tente esta função

{

procure por uma vírgula via https://docs.mql4.com/ru/strings/StringFind

Montagem de um novo fio a partir de duas partes: um fio antes da vírgula e um fio após a vírgula https://docs.mql4.com/ru/strings/StringGetChar

Converter para o número StrToDouble()

}

 

Aqui está um excelente exemplo, exatamente como você disse.

Hmmm...

Como acontece que em 20 segundos ele se torna exatamente zero. Veja a hora local sob o número 8000000000... Qual é a parte complicada? Talvez eu só precise fazer uma pausa, eh....

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:

tente esta função

{

procure por uma vírgula via https://docs.mql4.com/ru/strings/StringFind

Montagem de um novo fio a partir de duas partes: um fio antes da vírgula e um fio após a vírgula https://docs.mql4.com/ru/strings/StringGetChar

Converter para o número StrToDouble()

}

Não há outra forma ou esta função levará muito tempo para ser executada.

 

Se MathMod(ALLYTHING, 20) = 0, significa (se a memória me serve corretamente)

que TODO O NÚMERO é dividido por 20 sem um resto.

20 40 40 60 80 100 120 120 140 160 etc.

 
bernc:

Não há outra maneira ou esta função demorará muito tempo.



Não sei mais como tirar a vírgula da corda.

 
bernc:

Obrigado.

Mas não era isso que eu queria dizer com uma vírgula separando as tríades, e um ponto separa as partes fracionárias.

Eu tenho um fio 8.5464,00 Preciso convertê-lo para um número. StrToDouble(8.5464,00) mudará para 8.

F(8,5464.00) = 85464.00



Por caracteres, através de funções de corda, remova a vírgula, depois StrToDouble().