Comment diviser le flotteur en entier lorsque les deux sont des variables?
Je suis en train d'écrire un programme en C. j'ai deux variables dont l'une est de type entier et l'autre est un float. Je veux diviser le flotteur en entier et que vous souhaitez obtenir de résultat en float. Je suis en train de faire les suivants:
int a;
float b=0,c=0;
scanf("%d",&a);
Ici, je suis en train de faire quelques calculs sur b pour que sa valeur a augmenté au hasard je.e 33 etc.
c = b/(float)a;
printf("c = %2.f\n", c);
Le problème est que je suis 'c " comme un nombre entier (integer) plutôt que d'une valeur flottante.
Comment puis-je obtenir 'c " comme une valeur flottante.
- Êtes-vous sûr que c'est votre vrai code?
- Votre code fonctionne parfaitement bien pour moi. Il ne devrait pas être arrondi. Peut-être que vous avez accidentellement convertir c int plus tard?
- Quelles sont les valeurs sont dans les variables?
- Votre code serait bien avec
c = b / a;
: au moins l'un des diviseurs doit être à virgule flottante:b
l'est déjà. La réponse doit, par un hasard évaluer à unfloat
ayant pas de partie décimale. - Veuillez voir la version modifiée de mon code.
- Le code devrait fonctionner seulement avec "c = b / a", parce que, entre int et float types, le type float est plus forte, par conséquent, la conversion devrait être implicite.
Vous devez vous connecter pour publier un commentaire.
Votre problème est ici:
%d
formats c comme un entier. Utilisation%f
à la place.Ou
std::cout << "c = " << c << std::endl
si vous préférez.%.2f
Pour ceux à venir à partir d'une recherche sur Google en raison de la question du nom:
Le résultat de la division d'un flotteur par un nombre entier est un float, c'est propre et sûr. Exemple:
La sortie est prévue:
1.25
Lors de l'impression sur un écran, essayez ceci (cela a fonctionné pour moi):