[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 451

 
bernc:

Cioè avete bisogno di questa funzione F(8,5464.00) = 85464.00

8.5464/0.0001=85464
 
peshihod:

MathMod() è la divisione. Il resto è pura matematica: se il risultato di TimeLocal() è diviso per 20 ogni secondo (o più spesso), allora ogni 20 secondi il resto sarà zero.

Conclusione: la stessa idea può essere implementata in modi diversi.


Perché devo farlo ogni 20 secondi? Perché non a 19 o 17 anni?

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

Qui è uguale a zero ogni 11 secondi. Diviso per 20, 20 volte.

Scusa per le domande nubiane, è solo qualcosa che voglio capire.

 

Perché si divide esattamente per 20 volte?

Devi dividere finché non vinci ;)

 
peshihod:
8.5464/0.0001=85464

Grazie.

Ma non è quello che intendevo, la virgola è il separatore di triade e il punto separa la parte frazionaria.

Ho una stringa 8,5464.00 che devo convertire in un numero. StrToDouble(8,5464.00) prende 8.

F(8,5464.00) = 85464.00

 

prova questa funzione

{

cerca una virgola tramite https://docs.mql4.com/ru/strings/StringFind

Assemblare una nuova stringa da due parti: una stringa prima della virgola e una stringa dopo la virgola https://docs.mql4.com/ru/strings/StringGetChar

Convertire in numero StrToDouble()

}

 

Ecco un esempio lampante, proprio come hai detto tu.

Hmmm...

Come succede che diventa esattamente zero in 20 secondi. Vedere l'ora locale sotto il numero 8000000000... Qual è la parte difficile? Forse ho solo bisogno di una 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:

prova questa funzione

{

cerca una virgola tramite https://docs.mql4.com/ru/strings/StringFind

Assemblare una nuova stringa da due parti: una stringa prima della virgola e una stringa dopo la virgola https://docs.mql4.com/ru/strings/StringGetChar

Convertire in numero StrToDouble()

}

Non c'è un altro modo o questa funzione richiederà molto tempo per essere eseguita.

 

Se MathMod(TUTTO, 20) = 0, significa (se la memoria non mi inganna)

che OGNI NUMERO è diviso per 20 senza resto.

20 40 60 80 100 120 140 160 ecc.

 
bernc:

Non c'è altro modo o questa funzione richiederà molto tempo.



Non so come altro togliere la virgola dalla stringa.

 
bernc:

Grazie.

Ma non è quello che intendevo con una virgola che separa le triadi, e un punto che separa le parti frazionarie.

Ho una stringa 8,5464.00 che devo convertire in un numero. StrToDouble(8,5464.00) cambierà in 8.

F(8,5464.00) = 85464.00



Per carattere, attraverso le funzioni di stringa, rimuovere la virgola, poi StrToDouble().