Errores, fallos, preguntas - página 1129

 

A100:
32'535'244'799 != 32'535'215'999 - какое правильное? 

La correcta sería 32'535'215'999 para"3000.12.31 23:59:59"

Y32'535'244'799 sería correcto para"3001.01.01 07:59:59"

 
Fleder:

El límite para el tipo datetime simplemente no está definido correctamente:

Aparentemente el límite se define considerando la posibilidad de presentar la hora local en GMT o UTC al mismo tiempo. Entonces tendría sentido hacer un rango más amplio (+/-12 horas) de -43'200 a 32'535'291'599
 
Fleder:

El compilador trata el número 13,7 como el tipo double. Pero al mismo tiempo este número puede ser convertido sin pérdida al tipo float

y esta advertencia es innecesaria.

¿Cómo sabes que un número real 13,7 se puede convertir al tipo float sin pérdida?
 
stringo:
¿Cómo sabes que el número real 13,7 se puede convertir al tipo float sin pérdidas?

¿No es así? El número 13,7 = 0,137*1e+2. Al convertir tres decimales en tipo float, ¿hay alguna pérdida? Por lo que he visto, la precisión se pierde cuando se intenta convertir

números con seis decimales o más.

Intenté usar el tipo float para guardar comillas de cinco dígitos (por ejemplo, 1,38829) en un archivo binario. Después de leerlos desde el archivo e intentar mostrarlos en un gráfico como

El indicador gráfico aplicado a las velas del propio gráfico tiene algunas pequeñas discrepancias. Pero después de la normalización al quinto dígito desaparecieron.

Pero ahí hubo una doble pérdida de precisión: primero fue de doble a flotante y luego de nuevo de flotante a doble.

 
https://www.mql5.com/ru/docs/convert/normalizedouble Fleder:

¿No es así? El número 13,7 = 0,137*1e+2. Al convertir tres decimales en tipo float, ¿hay alguna pérdida? Por lo que he visto, la precisión se pierde cuando se intenta convertir

números con seis decimales o más.

Intenté usar el tipo float para guardar comillas de cinco dígitos (por ejemplo, 1,38829) en un archivo binario. Después de leerlos desde el archivo e intentar mostrarlos en un gráfico como

El indicador gráfico aplicado a las velas del propio gráfico tiene algunas pequeñas discrepancias. Pero tras la normalización al quinto dígito desaparecieron.

Pero hubo una doble pérdida de precisión: primero de doble a flotante, y luego de nuevo de flotante a doble.

No. Es una fracción infinita. Escribimos y escribimos, pero tú no lees.
 
stringo:
No. Es una fracción interminable. Escribimos y escribimos y tú no lees

¡Leemos! Pero la pérdida se produce "técnicamente" (peculiaridades del formato) y en aquellas fracciones que ni siquiera son necesarias.

void OnStart()
{
  Print((float)(13.7));   //13.7 - потерь "не видно"
  Print((double)(13.7));  //13.7 - здесь тоже
}
Особенности работы с числами типа double в MQL4 - Статьи по MQL4
  • www.mql5.com
Особенности работы с числами типа double в MQL4 - Статьи по MQL4: примеры использования экспертов, тестирования и оптимизации
 
A100:

Yo también he tenido este accidente. Ocurre al ejecutar un script si el Terminal (910) y el Compilador (921) no coinciden

Este es el código

class A  {
        int     array[];
};
void OnStart()
{
        A *a = new A();
        if ( a != NULL )
                delete( a );
}

Compilador 930, Terminal 910. Resultado:

 
A100:

Este es el código

Compilador 930, Terminal 910. Resultado:

¿Cómo es que el terminal es 910 y el compilador es 930?

Si ambos son 910, entonces este script no se 'cuelga'.

 

Sólo que no un terminal (no lo sé exactamente, pero creo que esto es común en el Mercado)

Puedo compartir el original de la carpeta ...\MQL5\Scripts

Archivos adjuntos:
Crash.ex5  4 kb
 
A100:

Sólo que no un terminal (no lo sé exactamente, pero creo que esto es común en el Mercado)

Puedo compartir el original de la carpeta ...\MQL5\Scripts

Bueno, eso es lo que tenía que probarWin XP 32 bits: