[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
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.
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);
Cioè avete bisogno di questa funzione F(8,5464.00) = 85464.00
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 ;)
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);
}
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.
Non c'è altro modo o questa funzione richiederà molto tempo.
Non so come altro togliere la virgola dalla stringa.
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().