|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Pierre SERANTConsultant ERP Inscription : février 2009 Messages : 40 ![]() |
Bonjour,
Je souhaite arrondir un chiffre a un nombre de chiffres significatifs par exemple 3. par exemple 7845684646684 donne 7850000000000 mais 0,0000005842651 donne 0,000000584 et 42,4896463333333 donne 42,4 ou 4,66666666666667 donne 4,67 Voilà un problème pour vos longues soirées d'hivers |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Bonjour,
voir les fonctions Fix et Round |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Pierre SERANTConsultant ERP Inscription : février 2009 Messages : 40 ![]() |
Merci pour ta réponse mais cela ne répond pas à mon problème.
En effet, je ne connais pas à l' avance la grandeur du nombre (de type double) je ne sais donc pas si je dois arrondir à +12 ou -18. Par exemple pour un chiffre 12,48755864 je doit arrondir à 1 ; mais pour un nombre de 78516666,6666666 je doit arrondir à -5. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 050 ![]() |
bonjour,
une solution est de passée par le Log base 10. tous les nombres pouvant s'écrire : x=y*10^n où y est un réel 0<y<10 et n un entier positif ou négatif log(x)=log(y*10^n) log(x)=log(y)+n la partie entière donne la puissance de 10 et la partie décimale le log. En appliquant la fonction inverse du Log Exp, on obtient : 0<Exp(log(y))<10, un nombre y<10, c'est ce nombre que l'on peut arrondir à la précision voulue. Selon tes données : Log(7845684646684)=12.89.... => n=12 et Exp(Log(y))=7.845684... et Round(Exp(Log(y)), 2) = 7.8500000 Log(0,0000005842651)=-6,2333..=> n=-6 et Exp(Log(y))=5.842651 et Round(Exp(Log(y)), 2) = 5.8400000 Bref un code possible : Log en vba correspond à la fonction Ln Code :
Round10(7845684646684, 2)=7850000000000 Round10(0.0000005842651, 2)=0,000000584 Round10(42.4896463333333, 2)=42,50 Round10(4.66666666666667, 2)=4.67 |
||
|
|
10
|
|
|
#5 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
je viens de poster ceci http://www.developpez.net/forums/d10...t/#post5632288 Edit : la solution de ilank est beaucoup plus astucieuse
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources ! |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Pierre SERANTConsultant ERP Inscription : février 2009 Messages : 40 ![]() |
Merci à ClaudeLELOUP et ilank
C'est effectivement une solution sans itération que je recherché. ![]() J'aurais dut penser au mathématique. Ce n'est donc pas forcement pour rien que l'on nous apprend les échelles logarithmiques à l'école ! Encore merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com