Comprendre la division à virgule flottante en C
Bien qu'elle soit affectée à une variable double, la division (3/5) donne zéro dans le code fourni code dû à une division entière. C évalue par défaut les opérandes d'une expression de division sous forme d'entiers. Comme 3 et 5 sont tous deux des nombres entiers, leur division donne un résultat entier, qui est zéro.
Pour effectuer une division en virgule flottante, où le résultat conserve une précision fractionnaire, au moins un opérande doit être un littéral à virgule flottante. . Cela oblige le compilateur à traiter la division comme une opération à virgule flottante et à renvoyer un résultat à virgule flottante.
Dans le code original, pour obtenir la division à virgule flottante souhaitée, on pourrait le modifier comme suit :
#include <iostream> int main(int argc, char** argv) { double f = 3.0 / 5; // Change both operands to floating-point literals std::cout << f; return 0; }
En faisant d'un opérande (dans ce cas, 3.0) un littéral à virgule flottante, le compilateur effectuera une division en virgule flottante et le résultat reflétera correctement la fraction valeur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!