Hola buenas.
Tengo un problema con un programa en el que pretendo utilizar el especificador de formato %g. Según tengo entendido la entrada puede hacerse por teclado introduciendo, por ejemplo, 2e-4. Lo que quiere decir 0.0002. Pues bien, introduzco el dato y luego al mostrarlo por pantalla me sale algo que no tiene nada que ver. El código es el siguiente:
main()
{
double x;
scanf("%g",&x);
printf("%g",x);
}
Como ya he dicho, al imprimir por pantalla el número que he introducido previamente por teclado me sale algo que no tiene nada que ver. Por ejemplo, meto 2e-4 y me imprime 1.#NAN . O sea, que algo no funciona bien. ¿Alguien sabe qué es lo que está pasando?
Agradezco de antemano cualquier ayuda. Un Saludo.
Cambia el tipo de <x> de <double> a <float> y me comentas si te ha funcionado.
O al revés, si quieres usar <x> como <double>, cambia el formato de <%g> a <%lg>.
Hola
Muchas gracias por responder YreX-DwX. Ya lo he corregido y funciona perfectamente. He optado por la segunda opción ya que necesitaba la precisión de un double.
Saludos.