[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 451

 
bernc:

Es decir, necesitas esta función F(8,5464.00) = 85464.00

8.5464/0.0001=85464
 
peshihod:

MathMod() es una división. El resto es pura matemática: si el resultado de TimeLocal() se divide por 20 cada segundo (o más a menudo), entonces cada 20 segundos el resto será cero.

Conclusión: una misma idea puede aplicarse de diferentes maneras.


¿Por qué tengo que hacerlo cada 20 segundos? ¿Por qué no a los 19 o a los 17 años?

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

Aquí es igual a cero cada 11 segundos. Dividido por 20, 20 veces.

Perdón por las preguntas nubias, es algo que quiero entender .

 

¿Por qué se divide por 20 veces exactamente?

Hay que dividir hasta ganar ;)

 
peshihod:
8.5464/0.0001=85464

Gracias.

Pero no es eso lo que quería decir, la coma es el separador de la tríada y el punto separa la parte fraccionaria.

Tengo una cadena 8,5464.00 que necesito convertir en un número. StrToDouble(8,5464.00) toma 8.

F(8,5464.00) = 85464.00

 

pruebe esta función

{

buscar una coma a través de https://docs.mql4.com/ru/strings/StringFind

Ensamblar una nueva cadena a partir de dos partes: una cadena antes de la coma y una cadena después de la coma https://docs.mql4.com/ru/strings/StringGetChar

Convertir a número StrToDouble()

}

 

He aquí un ejemplo, tal y como has dicho.

Hmmm...

Cómo es que se vuelve exactamente cero en 20 segundos . Ver la hora local bajo el número 8000000000... ¿Cuál es la parte difícil? Tal vez sólo necesito tomar un descanso, 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:

pruebe esta función

{

buscar una coma a través de https://docs.mql4.com/ru/strings/StringFind

Ensamblar una nueva cadena a partir de dos partes: una cadena antes de la coma y una cadena después de la coma https://docs.mql4.com/ru/strings/StringGetChar

Convertir a número StrToDouble()

}

¿No hay otra forma o esta función tarda mucho en ejecutarse?

 

Si MathMod(TODO, 20) = 0, significa (si la memoria no me falla)

que CADA NÚMERO se divide por 20 sin que quede un resto.

20 40 60 80 100 120 140 160 etc.

 
bernc:

No hay otra manera o esta función tardará mucho tiempo.



No sé cómo quitar la coma de la cadena.

 
bernc:

Gracias.

Pero no es eso lo que quería decir con una coma que separa las tríadas, y un punto que separa las partes fraccionarias.

Tengo una cadena 8.5464,00 que necesito convertir en un número. StrToDouble(8,5464.00) cambiará a 8.

F(8,5464.00) = 85464.00



Por carácter, a través de las funciones de cadena, quitar la coma, y luego StrToDouble().