Maison >développement back-end >C++ >Pourquoi la division entière C# est-elle arrondie à l'inférieur et comment puis-je l'éviter ?

Pourquoi la division entière C# est-elle arrondie à l'inférieur et comment puis-je l'éviter ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 18:24:40744parcourir

Why Does C# Integer Division Round Down, and How Can I Avoid It?

Arrondissement des divisions en C#

Lors de l'exécution d'une division en C#, les programmeurs peuvent rencontrer un comportement d'arrondi inattendu. Ce problème survient lorsqu'une division entière est effectuée, entraînant la perte de parties fractionnaires.

Pour illustrer, considérons le code suivant :

double i;
i = 200 / 3; // Integer division
MessageBox.Show(i.ToString());

Ce code affichera une boîte de message avec la valeur "66". Cependant, le résultat attendu pour 200/3 devrait être 66,66666...

Solution : utiliser la double division

Pour éviter cet arrondi vers le bas et maintenir la précision en virgule flottante, il faut utiliser une division double au lieu d'une division entière. Ceci peut être réalisé en :

  1. Convertir l'un des opérandes en double :
i = (double)200 / 3;
  1. Utiliser un point décimal final dans un opérande :
i = 200.0 / 3;
  1. Ajouter le suffixe d à un opérande :
i = 200d / 3;

En utilisant la double division, l'opérateur de division / effectuera une division en virgule flottante, en conservant tous les chiffres significatifs.

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!

Déclaration:
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