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

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

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 17:31:40708parcourir

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

Arrondissement automatique des divisions C# : comprendre et éviter cela

Lorsque vous effectuez une division en C#, vous pouvez rencontrer un arrondi inattendu des résultats. Ce comportement découle de la nature de la division entière, qui tronque le résultat au nombre entier le plus proche.

Pour illustrer cela, considérons l'exemple suivant :

double i;
i = 200 / 3;
Messagebox.Show(i.ToString());

Ce code affiche une boîte de message avec la valeur « 66 », indiquant que 200 / 3 a été arrondi à 66. Cependant, la valeur réelle de 200 / 3 est d'environ 66.6666667.

Pour éviter cet arrondi vers le bas, il faut explicitement convertir les opérandes en nombres à virgule flottante double précision avant d'effectuer la division. Ceci peut être réalisé de plusieurs manières :

  1. Convertir la constante :
i = (double)200 / 3;
  1. Utiliser une valeur décimale littéral :
i = 200.0 / 3;
  1. Ajout du suffixe 'd' à la constante :
i = 200d / 3;

L'un des ces approches garantiront qu'une double division est effectuée, en préservant la partie décimale du résultat. Par conséquent, il est important de comprendre les implications de l'utilisation de la division entière et d'utiliser des techniques de conversion appropriées lorsque des fractions sont impliquées.

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