Maison >développement back-end >C++ >Comment éviter la troncature d'entiers dans la division C Float ?

Comment éviter la troncature d'entiers dans la division C Float ?

DDD
DDDoriginal
2024-11-11 21:06:031050parcourir

How to Avoid Integer Truncation in C   Float Division?

Comment produire un résultat flottant à partir d'une division entière

En C, la division entière tronque le résultat, même lorsque la sortie est affectée à un variable flottante. Pour éviter cette troncature, les opérandes doivent être explicitement convertis en flottants :

float ans = (float)a / (float)b;

Dans ce code :

  • a et b sont des entiers, et ans est un flottant.
  • L'expression (a / b) effectue une division entière, et le résultat est tronqué à un entier (3).
  • Le cast (float)a convertit a en float (10.0).
  • Le cast (float)b convertit b en float (3.0).
  • L'expression ((float)a / (float)b) effectue une division en virgule flottante, produisant un résultat float (3.000).
  • Ceci le résultat est ensuite attribué à ans.

En convertissant les opérandes en flotteurs, la sortie de la division est conservée sous forme de flotteur, ce qui donne la précision souhaitée :

3
3.333

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