Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Se necesita para determinar el tamaño de una matriz variable, pero sale el error:
//---
//---
Funciona directamente con constantes (#define) y con un valor numérico, pero no así. ¿Por qué?
Se necesita para determinar el tamaño de una matriz variable, pero sale el error:
//---
//---
Funciona directamente con constantes (#define) y con un valor numérico, pero no así. ¿Por qué?
tol64:
¿Por qué?
Con constantes (#define) y con un valor numérico, funciona directamente, pero no así. ¿Por qué?
Porque al definir con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
que no contradice el lenguaje MQL5.
DE ACUERDO. Entonces, me atreveré. Así, la descripción de la función Print() dice que "los datos del tipo double se imprimen con la precisión de 16 dígitos decimales después del punto". De hecho, resulta que la función Print() produce datos algo redondeados:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.999999999716
La cuestión es que un número real se almacena en la memoria con no más de 17 dígitos significativos.
Pruebe este ejemplo para sentir la diferencia:
La descripción en la ayuda será corregida.Con las constantes, es una matriz estática, y con una variable, es dinámica. Y el tamaño de una dinámica se determina usando ArrayResize.
La segunda dimensión y las siguientes tienen un tamaño fijo. Sólo puede ser fijado por una constante.
Porque cuando se define con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
que no contradice el lenguaje MQL5.
Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué se puede redimensionar un array mediante una variable, mientras que no se puede establecer inicialmente?
Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué puedo redimensionar un array aplicando un valor variable, mientras que no se puede establecer inicialmente?