Maison >développement back-end >C++ >Comment C# gère-t-il les résultats fractionnaires dans la division et comment puis-je éviter l'arrondi des nombres entiers ?

Comment C# gère-t-il les résultats fractionnaires dans la division et comment puis-je éviter l'arrondi des nombres entiers ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 19:56:46693parcourir

How Does C# Handle Fractional Results in Division, and How Can I Avoid Integer Rounding?

Comprendre l'arrondi dans la division C#

Lors de l'exécution d'une division en C#, les résultats fractionnaires sont souvent arrondis à l'entier le plus proche. Cela peut être inattendu, en particulier lorsque vous travaillez avec des nombres à virgule flottante.

L'exemple

Considérez l'extrait de code suivant :

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

Ici , i reçoit la valeur de 200 divisé par 3, soit 66,6666667. Cependant, lorsqu'il est affiché à l'aide de Messagebox.Show, il affiche « 66 ». En effet, C# effectue une division entière par défaut, en arrondissant au nombre entier le plus proche.

Éviter d'arrondir vers le bas

Pour conserver une précision fractionnaire, vous pouvez utiliser l'un des approches suivantes :

  • Cast explicite pour doubler : Cast l'un des opérandes pour un double pour forcer une division en double précision. Par exemple :
i = (double)200 / 3;
  • Utiliser des constantes à virgule flottante : Déclarez l'un des opérandes comme constante à virgule flottante en utilisant le suffixe .0 ou d. Cela permet également une division en double précision. Par exemple :
i = 200.0 / 3;
  • Utilisez le suffixe « d » : Ajoutez le suffixe d à la constante entière pour indiquer une division en double précision. Par exemple :
i = 200d / 3;

En utilisant ces méthodes, vous pouvez vous assurer que les calculs de division renvoient des résultats fractionnaires sans arrondir à l'inférieur.

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