Maison >développement back-end >C++ >Comment obtenir un résultat flottant lors de la division d'entiers en C ?
Perte de précision dans une division entière : obtenir un résultat flottant
Dans les situations où les entiers sont divisés et qu'un résultat à virgule flottante est souhaité, C peut tronquer la sortie, entraînant une perte de données. Pour résoudre ce problème, il est crucial de comprendre le principe de la division entière en C et de mettre en œuvre une méthode pour forcer une opération à virgule flottante.
Lors de la division de deux entiers, C effectue une division entière, ce qui signifie un nombre entier. résultat. Ce comportement persiste même lors de l'affectation du résultat à une variable float. Pour obtenir un résultat en virgule flottante, il est indispensable de convertir les opérandes en float avant d'effectuer la division.
La solution consiste à modifier le code comme suit :
float ans = (float)a / (float)b;
En lançant les deux opérandes pour flotter, nous nous assurons que l'opération de division est effectuée comme une opération à virgule flottante, ce qui donne un résultat flottant. La réponse calculée est ensuite stockée dans la variable ans.
L'extrait de code modifié est présenté ci-dessous :
#include <iostream> #include <iomanip> using namespace std; int main() { int a = 10, b = 3; float ans = (float)a / (float)b; cout << fixed << setprecision(3); cout << (a / b) << endl; // Integer division cout << ans << endl; // Float division return 0; }
Avec cette modification, la sortie affichera désormais correctement le résultat float lors de l'utilisation de ans .
En comprenant le comportement de la division entière et en implémentant la solution de conversion, les programmeurs peuvent obtenir efficacement des résultats en virgule flottante dans de telles situations, garantissant ainsi des calculs précis et le résultat souhaité. valeurs.
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!