/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

SCANF y FLOAT

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
lapreguntona



Registrado: 14 May 2014
Mensajes: 2

MensajePublicado: 14/05/2014 7:51 am
Título: SCANF y FLOAT

Hola,
tengo problemas con la precisión de flotantes y scan f. Cuando corro el algoritmo con el valor 0.3, no me entra en la condición del IF y es por la precisión ya que el scanf me toma 0.3000000012 ¿Como puedo correjir esto código sin dejar de usar scanf ya que es un ejercicio con el uso de esto:
#include <stdio.h>


int main ()
{
float capbot(1.1);

printf("Ingrese capacidad de la botella. Un valor entre 0 y 1 :");
scanf("%f",&capbot);
if ((capbot >= 0) && (capbot <= 0.3))
printf("Vacía");
else
if ((capbot > 0.3) && (capbot <=0.7))
printf("Media");
else
if (capbot >0.7 && capbot <= 1)
printf("Llena");
else
printf("Capacidad fuera del rango pedido ");
return 0;
}

GRACIAS
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 14/05/2014 7:21 pm
Título:

En mi caso el problema se soluciona utilizando el tipo double para la variable "capbot" (las literales como 1.1 son de ese tipo):
Código:
#include <stdio.h>

int main(void)
{
   double capbot;
   
   printf("Ingrese capacidad de la botella. Un valor entre 0 y 1 :");
   scanf("%lf",&capbot);
   
   if (capbot >= 0.0 && capbot <= 0.3)
      printf("Vacia");
   else if (capbot > 0.3 && capbot <=0.7)
      printf("Media");
   else if (capbot > 0.7 && capbot <= 1.0)
      printf("Llena");
   else
      printf("Capacidad fuera del rango pedido ");
   
   return 0;
}


Si vas a trabajar con números de punto flotante pueden generarse algunos problemas, dos documentos sobre el tema son:
Understanding and Using Floating Point Numbers
Floating point

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
lapreguntona



Registrado: 14 May 2014
Mensajes: 2

MensajePublicado: 15/05/2014 4:41 am
Título: Gracias

Gracias rir3760, lo probé y me funcionó bien. Voy a leer los materiales que me dejaste por que el tema de flotantenolo tengonada claro.... Very Happy
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com