85 votes

Diviser deux entiers pour obtenir un résultat flottant

Duplicata possible :
Pourquoi ne puis-je pas retourner un double à partir de deux entiers divisés ?

Mon programme C++ tronque la sortie de ma division entière même lorsque j'essaie de placer la sortie dans un float. Comment puis-je éviter cela tout en gardant les deux variables (a & b) en tant qu'entiers ?

user@box:~/c/precision$ cat precision.cpp
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
  int a = 10, b = 3;
  float ans = (a/b);
  cout<<fixed<<setprecision(3);
  cout << (a/b) << endl;
  cout << ans << endl;
  return 0;
}

user@box:~/c/precision$ g++ -o precision precision.cpp 
user@box:~/c/precision$ ./precision 
3
3.000

138voto

cdiggins Points 5549

Convertit les opérandes en flottants :

float ans = (float)a / (float)b;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X