Skip to main content
Répondu

calcul modulo


Forum|alt.badge.img+1

Je recherche la fonction Silae permettant de faire un modulo.

Je fais un calcul et je souhaite que f(8)=1, f(9)=2, f(10)=3, f(11)=4, f(12)=5, f(1)=6, f(2)=7, f(3)=8,f(4)=9,f(5)=10, F(6)=11, f(7)=12.

Cela se fait avec f(x) = ((x+4) mod 12) +1

mais comment faire un modulo dans une fonction calcul ?

Merci de votre aide​​​​​​​

Meilleure réponse par GUILLAUME PRATLONG

Round va faire un arrondi donc 2.6 devient 3. Ca ne pose pas de problemes ? 

Après je m’avance un peu, j’ai un peu de mal à suivre la formule mais si les valeurs vont seulement de 1 à 12 et concernent des mois de l’année, vous pouvez pas faire

 

Si mois = 8 alors valeurmois=1

Si mois = 9 …
Ca vous fait 12 lignes.

7 commentaires

Forum|alt.badge.img+4

Bonjour

pour moi à part faire le calcul de la division - le calcul de l’entier de la division pour obtenir le reste puis le multiplier par le diviseur, je ne vois pas d’autre solution.

 


Forum|alt.badge.img+1

Merci ​@Philippe PLANCQ 
J’avais effectivement cela comme alternative.

Il me reste à trouver comment avoir l’entier d’un nombre décimal.
une idée ?


Forum|alt.badge.img+4

Bonjour

 

Vous pouvez essayer la fonction ToInt ou Round(x,0)


Forum|alt.badge.img+3

Ou Trunc ? ou ENT ? 


Forum|alt.badge.img+1

Bonjour, 
Merci à ​@GUILLAUME PRATLONG  et à ​@Philippe PLANCQ .

J’ai implémenté ces formules.
MoisTmp = ((Mois+4)/12)
MoisMod = Round((MoisTmp - Round(MoisTmp,0)) * 12,0)

Tout marche OK du mois 9 jusqu’à 2 MoisMod passe de 1 à 6.
Mais je ne comprend pas pourquoi à partir du mois Mars (3), MoisMod depuis 5 jusqu’à arriver à 1 en Juillet.

C’est peut être lié au nombre de décimale de MoisTmp, plus il est long mieux c’est.
Avez vous une autre idée ?
 


Forum|alt.badge.img+3

Round va faire un arrondi donc 2.6 devient 3. Ca ne pose pas de problemes ? 

Après je m’avance un peu, j’ai un peu de mal à suivre la formule mais si les valeurs vont seulement de 1 à 12 et concernent des mois de l’année, vous pouvez pas faire

 

Si mois = 8 alors valeurmois=1

Si mois = 9 …
Ca vous fait 12 lignes.


Forum|alt.badge.img+1

Bon, je vais me restreindre à cette dernière solution que je ne trouve pas très sexy.
Si une personne de Silae nous lit, cela serait biens d’avoir le fin mot de l’histoire.