Maison > développement back-end > C++ > Pourquoi la division entière C donne-t-elle zéro et comment réaliser une division en virgule flottante ?

Pourquoi la division entière C donne-t-elle zéro et comment réaliser une division en virgule flottante ?

Susan Sarandon
Libérer: 2024-12-16 17:31:10
original
452 Les gens l'ont consulté

Why Does C   Integer Division Result in Zero, and How Can Floating-Point Division Be Achieved?

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal