Maison >développement back-end >C++ >Pourquoi l'opérateur de module ne fonctionne-t-il pas avec les doubles en C et comment puis-je y remédier ?

Pourquoi l'opérateur de module ne fonctionne-t-il pas avec les doubles en C et comment puis-je y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 01:57:12848parcourir

Why Doesn't the Modulus Operator Work with Doubles in C   and How Can I Fix It?

Impossible d'utiliser l'opérateur de module avec des variables doubles

En programmation, l'opérateur de module (%) est généralement utilisé pour calculer le reste après un nombre entier division. Cependant, tenter d'appliquer cet opérateur à des nombres à virgule flottante double précision en C peut entraîner un message d'erreur indiquant que les opérandes ne sont pas valides. Pour résoudre ce problème, nous devons utiliser une approche différente.

L'erreur est due au fait que l'opérateur de module est destiné aux variables entières, qui ne peuvent prendre que des valeurs entières. Les variables doubles, quant à elles, représentent des nombres fractionnaires. Pour effectuer une opération similaire sur les doubles, il faut recourir à la fonction fmod().

Voici comment résoudre le problème à l'aide de la fonction fmod() :

#include <cmath>

int main() {
    double x = 6.3;
    double y = 2.0;
    double z = std::fmod(x, y);
}

Le fmod() la fonction est définie dans le fichier bibliothèque et fonctionne de la même manière que l'opérateur de module. Cependant, il renvoie le reste après avoir divisé le premier opérande (x) par le deuxième opérande (y) sous forme de nombres à virgule flottante double précision. En incorporant cette fonction, nous pouvons utiliser avec succès l'opération de module sur les doubles dans notre programme C.

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