duda sobre float
Publicado por domis (1 intervención) el 16/06/2002 17:31:46
Hola a todos.
Tengo un pequeño problema con float, supuestamente float sirve para trabajar con numeros enteros con decimales, pero cuando ejecuto un programa que pasa de euros a pesetas y viceversa siempre me salen decimales aunque estos no existan. Seguidamente voy a poner el codigo fuente del programa y un ejemplo sobre lo que hablo:
#include <stdio.h>
float euros;
float pesetas;
char opcion;
int main()
{
system("clear");
printf("A-) De Euros a pesetas \n");
printf("B-) De Pesetas a Euros \n\n");
printf("¿ que opcion deseas ? ");
scanf("%c",&opcion);
opcion=toupper(opcion); // pasamos el caracter insertado en el scanf de opcion a mayusculas
// PASAMOS DE EUROS A PESETAS
if (opcion=='A')
{
printf("\nInserta la cantidad en Euros: ");
scanf("%f", &euros);
printf("\n%f Euros son %f pesetas\n\n",euros,euros*166.386);
}
// PASAMOS DE PESETAS A EUROS
if (opcion=='B')
{
printf("\nInserta la cantidad en Pesetas: ");
scanf("%f", &pesetas);
printf("\n%f Pesetas son %f Euros\n\n",pesetas,pesetas/166.386);
}
}
Bien ahora supongo que ejecutamos el programa y nos saldria lo siguiente:
A-) De Euros a pesetas
B-) De Pesetas a Euros
¿ que opcion deseas ? b ------= elijo la opcion b por ejemplo.
Inserta la cantidad en Pesetas: 1000 -----= quiero pasar 1000 pesetas a euros
1000.000000 Pesetas son 6.010121 Euros
---= aqui esta el problema ¿ por que me salen 1000.000000 en vez de 1000 ? ¿ existe alguna forma de quitar todos los ceros que estan despues del punto, lo digo porque yo he insertado como valor 1000 , no 1000.000000 , ademas este numero no tiene decimales, puesto que es entero.
Un saludo a todos y a cuidarse :-)
Tengo un pequeño problema con float, supuestamente float sirve para trabajar con numeros enteros con decimales, pero cuando ejecuto un programa que pasa de euros a pesetas y viceversa siempre me salen decimales aunque estos no existan. Seguidamente voy a poner el codigo fuente del programa y un ejemplo sobre lo que hablo:
#include <stdio.h>
float euros;
float pesetas;
char opcion;
int main()
{
system("clear");
printf("A-) De Euros a pesetas \n");
printf("B-) De Pesetas a Euros \n\n");
printf("¿ que opcion deseas ? ");
scanf("%c",&opcion);
opcion=toupper(opcion); // pasamos el caracter insertado en el scanf de opcion a mayusculas
// PASAMOS DE EUROS A PESETAS
if (opcion=='A')
{
printf("\nInserta la cantidad en Euros: ");
scanf("%f", &euros);
printf("\n%f Euros son %f pesetas\n\n",euros,euros*166.386);
}
// PASAMOS DE PESETAS A EUROS
if (opcion=='B')
{
printf("\nInserta la cantidad en Pesetas: ");
scanf("%f", &pesetas);
printf("\n%f Pesetas son %f Euros\n\n",pesetas,pesetas/166.386);
}
}
Bien ahora supongo que ejecutamos el programa y nos saldria lo siguiente:
A-) De Euros a pesetas
B-) De Pesetas a Euros
¿ que opcion deseas ? b ------= elijo la opcion b por ejemplo.
Inserta la cantidad en Pesetas: 1000 -----= quiero pasar 1000 pesetas a euros
1000.000000 Pesetas son 6.010121 Euros
---= aqui esta el problema ¿ por que me salen 1000.000000 en vez de 1000 ? ¿ existe alguna forma de quitar todos los ceros que estan despues del punto, lo digo porque yo he insertado como valor 1000 , no 1000.000000 , ademas este numero no tiene decimales, puesto que es entero.
Un saludo a todos y a cuidarse :-)
Valora esta pregunta


0