Bonjour,
Voila j'ai un soucis j'ai besoin de faire le modulo avec des doubles.
Le calcul est le suivant:
Car si je ne met pas le .25 j'ai un decalage enorme qui arrive rapidement :(Code:int reste = nbjour % 365.25;
Comment faire?
Merci
Version imprimable
Bonjour,
Voila j'ai un soucis j'ai besoin de faire le modulo avec des doubles.
Le calcul est le suivant:
Car si je ne met pas le .25 j'ai un decalage enorme qui arrive rapidement :(Code:int reste = nbjour % 365.25;
Comment faire?
Merci
Trouvé fonction fmod :D
salut
int reste = ( (100*nbjour) % 36525) / 100;
Salut,
Je suis désolé, mais ta question n'a aucun sens...
Tout simplement, du fait de la définition meme du modulo qui est
De plus, une année n'est pas *exactement* de 356.25 jours...Citation:
le reste (entier) de la division d'un entier par un autre
Elle est de 356 jour, 5 heures et cinquante et quelques minutes...
C'est la raison pour laquelle une année est bissextile si
- elle est multiple de 4 sauf (1996 était bissextile)si
- elle est multiple de 100 (1900 n'était pas bissextile) sauf si
- elle est multiple de 400 (2000 était bissextile)...
Si tu veux travailler correctement en évitant les problèmes "d'approximation", il faut utiliser un algorithme qui prendra en compte le fait qu'une année soit bissextile ou non ;)...
Je suis bien conscient que tu n'auras plus mal aux os d'ici à ce qu'une erreur puisse arriver en utilisant ton approximation... mais quand meme :D