Avatar ·

Quelle est la différence entre float et double en C++ ?

Bonjour ! J'ai récemment commencé à apprendre le C++ et j'ai rencontré une situation confuse. Dans le manuel, il est écrit qu'il existe deux types pour les nombres à virgule flottante : float et double. Je comprends que double occupe plus de mémoire (8 octets contre 4), mais je ne vois pas clairement quand utiliser quoi. Par exemple, j'ai écrit un programme simple pour calculer l'aire d'un cercle : ```cpp #include #include int main() { float radius = 2.5f; float area = M_PI * radius * radius; std::cout << "Aire : " << area << std::endl; return 0; } ``` Tout fonctionne parfaitement. Mais ensuite, j'ai essayé de calculer quelque chose de plus complexe, comme la somme d'un grand nombre de nombres fractionnaires : ```cpp float sum = 0.0f; for (int i = 0; i < 1000000; ++i) { sum += 0.1f; } std::cout << "Somme : " << sum << std::endl; // Affiche 99999.992... au lieu de 100000.0 ``` Le résultat n'était pas précis ! Si je remplace float par double, la réponse sera plus proche de celle attendue. Pourquoi cela se produit-il ? Quelle est la différence fondamentale ?