Bonjour,

J'effectue sur un int que je cast implicitement en double une opération mathématique, lorsque je print le résultat, tout se passe bien entre 1 et 9, mais si je lui envoie une valeur n >= 10 j'obtiens des résultats étranges comme par exemple "3.6288e+06" sur 10 au lieu de "3 628 800", je ne comprends pas pourquoi... Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
int             f(int n)
{
  double        r = n;
 
  for (int i = 1; i < n ; i++)
    r = r * (n - i);
  std::cout << "operation sur: " << n << " = " << r << std::endl;
  r = round(r);
  return (static_cast<int>(r));
Merci pour vos indications !