Utilisation correcte de std :: cout.precision () - ne pas imprimer les zéros de fin

Je vois beaucoup de questions sur la précision de nombre de nombres à virgule flottante, mais plus précisément, je veux savoir pourquoi ce code

#include <iostream>
#include <stdlib.h>
int main()
{
  int a = 5;
  int b = 10;
  std::cout.precision(4);
  std::cout << (float)a/(float)b << "\n";
  return 0;
}

montre 0.5? Je m'attends à voir 0.5000.
C'est à cause de l'origine des types de données entier?

source d'informationauteur mahmood