Calcul et convertion de type, resultat incoherent
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:
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 !