Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question sur le modulo

7 réponses
Avatar
Odysseas Gabrielides
Bonjour,
Je fais :

double t;
t=x%125;

x est un double ossi, je trouve cette erreur:

error C2296: '%' : illegal, left operand has type 'double'

Le modulo ne peut pas etre utilise avec des double ?

7 réponses

Avatar
Falk Tannhäuser
Odysseas Gabrielides schrieb:
double t;
t=x%125;

x est un double aussi, je trouve cette erreur:
error C2296: '%' : illegal, left operand has type 'double'
Le modulo ne peut pas etre utilise avec des double ?



Non, il faut utiliser la fonction std::fmod() après avoir inclus <cmath> :
double t = std::fmod(x, 125.0);

Falk
Avatar
Eric Jacoboni
Odysseas Gabrielides writes:


double t;
t=x%125;

x est un double ossi, je trouve cette erreur:

error C2296: '%' : illegal, left operand has type 'double'

Le modulo ne peut pas etre utilise avec des double ?



Bien que mon Draft C# de 2001 annonce qu'il puisse être utilisé avec
*deux* opérandes float (ou double), je pense que cet opérateur ne
fonctionne que sur des types entiers.
Avatar
Jean-Marc Bourguet
Eric Jacoboni writes:

Odysseas Gabrielides writes:


> double t;
> t=x%125;
>
> x est un double ossi, je trouve cette erreur:
>
> error C2296: '%' : illegal, left operand has type 'double'
>
> Le modulo ne peut pas etre utilise avec des double ?

Bien que mon Draft C# de 2001 annonce qu'il puisse être utilisé avec
*deux* opérandes float (ou double), je pense que cet opérateur ne
fonctionne que sur des types entiers.



En C et en C++, c'est certain. En C#, aucune idee.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
Eric Jacoboni
Jean-Marc Bourguet writes:


En C et en C++, c'est certain. En C#, aucune idee.



Oups, pardon... je voulais parler du draft C++ :)
Avatar
Jean-Marc Bourguet
Eric Jacoboni writes:

Jean-Marc Bourguet writes:


> En C et en C++, c'est certain. En C#, aucune idee.

Oups, pardon... je voulais parler du draft C++ :)



Tu peux donner une reference precise? A premiere vue, le dernier CD n'est
en rien different sur ce point de celui de "The annotated C++ reference
manual". Je ne vois pas pourquoi il y aurait eu un glitch qq part la
dessus (surtout en 2001 ou le comite s'occupait de fixer les problemes, pas
de modifier le langage).

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
Eric Jacoboni
Jean-Marc Bourguet writes:

Tu peux donner une reference precise?



Laisse tomber... les vacances arrivent à point-nommé. Je me suis
lourdement pris les pieds dans le tapis en confondant le draft C++ avec
celui de C# (qui, pour une raison que j'ignore était soigneusement rangé
dans le répertoire de mes docs C++).

Je cours me cacher...
Avatar
Come david
Le Sun, 05 Apr 2009 21:42:04 +0200, Odysseas Gabrielides
a écrit:

Bonjour,
Je fais :

double t;
t=x%125;

x est un double ossi, je trouve cette erreur:

error C2296: '%' : illegal, left operand has type 'double'

Le modulo ne peut pas etre utilise avec des double ?




man fmod