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 ?
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
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!