Errores, fallos, preguntas - página 1554
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
Como no obtuve respuesta en el otro hilo, repetiré la pregunta aquí, tal vez esto ayude
"
Por favor, pueden decirme cuál es mi error.
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);
La fecha de la matriz OpenSellTime no se imprime y no la segunda parte de la expresión - PriceOpenSell.
Y, no puedo encontrar sobre los comandosprintf como%G y%d.
"
Aunque cualquier tutorial de C te serviría también.
Gracias por la respuesta, pero el enlace es confuso... No puedo resolverlo de inmediato - vi este texto en la ayuda antes de empezar a publicar en el foro.
Si he entendido bien, %d es para ignorar los ceros, si los hay, mientras que %G es para imprimir un valor sin cortar los ceros? No soy idiota, pero no puedo entender la ayuda y sin entender no puedo entender por qué mi cuerda no funciona correctamente...
Gracias por la respuesta, pero el enlace es confuso... No puedo resolverlo de inmediato - vi este texto en la ayuda antes de empezar a publicar en el foro.
Si lo he entendido bien, %d es para ignorar los ceros, si los hay, mientras que %G es para emitir el valor sin cortar los ceros? No soy tonto, pero no puedo entender la ayuda, y si no la entiendo no puedo entender por qué mi cadena no funciona correctamente...
Gracias por la respuesta, pero el enlace es confuso... No puedo resolverlo de inmediato - vi este texto en la ayuda antes de empezar a publicar en el foro.
Si lo he entendido bien, %d es para ignorar los ceros, si los hay, mientras que %G es para emitir el valor sin cortar los ceros? No soy tonto, pero no entiendo la ayuda, y si no la entiendo, no puedo entender por qué mi cadena no funciona correctamente...
Yo no utilizo esta función en mi trabajo, pero creo que usted mismo puede realizar fácilmente experimentos sencillos.
Pero sí - lo he buscado y lo uso, pero no puedo averiguar exactamente la sintaxis, porque no se ajusta a la especificación
%[banderas][ancho][.precisión][{h | l | ll | I32 | I64}]tipo
No se menciona en el archivo de ayuda que no se pueden utilizar todos los parámetros. Y, lo más importante, no está claro dónde tengo un error de sintaxis, quizá si me lo señalaran, entendería mejor el asunto.
Léalo aquí.
Gracias. Lo he leído de forma superficial, buscando la información correcta - resulta que la primera parte es una plantilla y me la he inventado mal... ¿verdad?
Como, necesitas especificar los lugares donde estarán las variables, en mi caso es un índice del array, tiempo y número de tipo doble, y luego las variables en sí. Según la lógica del artículo, debería ser así
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);
¿O se equivoca de nuevo?
Gracias. Lo he leído de forma superficial, buscando la información correcta. Resulta que la primera parte es una plantilla y me la he inventado mal... ¿verdad?
Como, necesitas especificar los lugares donde estarán las variables, en mi caso es un índice del array, tiempo y número de tipo doble, y luego las variables en sí. Según la lógica del artículo, debería ser así
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);
¿O se equivoca de nuevo?
Bueno, está muy claramente escrito allí sobre la plantilla - los lugares donde se insertan las variables están marcados con un signo % en la plantilla. Toda la plantilla va entre comillas. A continuación, después de la propia plantilla, se enumeran las variables separadas por comas que se especifican en la plantilla. En orden de izquierda a derecha en el orden en que están escritos en la plantilla.
También están todas las especificaciones de los diferentes tipos de variables y su formato. No hay que ojearlo, empezando por el epígrafe"Formato de las cadenas en la plantilla".
Bueno, está muy claro lo de la plantilla - los lugares donde se insertan las variables se indican con un signo % en la plantilla. Toda la plantilla va entre comillas. A continuación, tras la plantilla propiamente dicha, se enumeran las variables de la misma, separadas por comas. En orden de izquierda a derecha en el orden en que están escritos en la plantilla.
También están todas las especificaciones de los diferentes tipos de variables y su formato. Sólo hay que leer sin mirar, empezando por el título"Formato de cadenas por plantilla".
Así es como lo escribí, entre comillas la plantilla y luego las variables en orden, ¿qué pasa?
"OpenSellTime[%index debe introducirse aquí] = %time, PriceOpenSell[%index] = %price" - ¿es éste el patrón?
Si es así, debería ser así:
"OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f"
A continuación se enumeran los valores propiamente dichos, separados por comas:
total:
... Bueno... si no me he dejado nada...
MQL4, DoubleToStr() y DoubleToString(). En DoubleToStr() para el segundo argumento añade "Default 8".
Código:
En los registros, el resultado para ellos será = 0,12345679, es decir, la función redondea el valor; no está escrito en la ayuda. Creo que merece la pena escribir más sobre esto, o al menos poner ejemplos del tipo:
donde el redondeo será visible.