|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 21 ![]() |
Bonjour,
J'aurais besoin de vos services pour résoudre un problème de logique que certains d'entre vous ont déjà rencontré,voire même qui a déjà été signalé à MS, qui sait. Lorsque je test dans excel : =si((A1-Ent(A1))= x.y;1;2) avec x de 1 à 9, j'obtiens des résultats pour le moins étrange. Pour x variables : - Si y=1, les 4 premeirs résultats sont vrais (1), les suivants faux (2) - si y=2, les 8 .... - si y=3, les 8 ... - si y=4, les 16 ... - si y=15, le résultat est toujours vrai - si y=6, les 16 ... - si y=7, les 8 ... - si y=8, les 8 ... - si y=9, les 15 ... Je peux vous joindre un fichier pour être plus "pratique" que théorique, dites moi où je peux le up sans ftp. Merci d'avance et bonne soirée. P.S : excel fait un arrondi, à partir de la k+1ème case (la 1ère case avec le nombre 2). exemple : à partir de la 9è case de y=3 (soit 8,3), (A1-Ent(A1) ne me donne pas 0,3 mais 0.299999999999999 ou 0.30000000000001, d'où le "FAUX". P.S. 2 : Au cas où le sujet ait déjà été traité, je ne l'ai pas trouvé = ] |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Bonjour,
Peut être une solution pour déjouer ce problème d'arrondi en gérant toi meme les arrondis A toi de choisir la précision (ici 2 décimales)
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 21 ![]() |
Bonjour jfontaine,
Merci. En fait, pour mon fichier, la seule solution viable est d'encadrer mon résultat. exemple avec x.9 : si(et(A1>0.89;A1<0.91);1;2) Mon post était surtout pour être plus simple, parce que ma formule ressemble à : =SI(S8<>"";S8;SI(T8<>"";T8;SI(U8<>"";U8;SI((Q8-ENT(Q8))<>0,9;Q8;SI(Q8-ENT(Q8)<0,5;ENT(Q8*(1+$Q$3))-0,1;SI((Q8-ENT(Q8))<0,89;ENT(Q8*(1+$Q$3))+0,5;ENT(Q8*(1+$Q$3))+0,9)))))) donc je pense remplacer : SI((Q8-ENT(Q8))<>0,9;Q8 par SI(et((Q8-ENT(Q8))>0,89;(Q8-ENT(Q8))<0.91);Q8 Mais comme je suis curieux (et que j'ai cru réver en voyant pareil erreur logique), je voulais savoir si quelqu'un avait connaissance (ou une explication) sur le sujet. Cordialement. |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : mai 2010 Messages : 200 ![]() |
Bonsoir,
Un peu de lecture : http://support.microsoft.com/kb/78113 Sinon une recherche google sur les termes Calculs sur nombre en virgule flottante devrait t'amener des réponses. A+ |
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 21 ![]() |
Citation:
Merci à tous et bonne journée. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com