Bonjour,
Je cherche à arrondir une valeur selon sa décimale, plus particulièrement le dernier chiffre. Exemples :
La règle : on part de la 3e décimale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 12.458 -> doit renvoyer 12.46 12.454 -> doit renvoyer 12.45 12.45555556 ->doit renvoyer 12.46 12.4555555 -> doit renvoyer 12.45 12.45555554 -> doit renvoyer 12.45
- Si elle est < 5 : on arrondit à la 2ème décimale inférieure
- Si elle est > 5 : on arrondit à la 2ème décimale supérieure
- Si elle est = 5 : on vérifie la décimale suivante suivant la même règle
- S'il n'y a que des 5 : on arrondit à la 2ème décimale inférieure
J'ai essayé de faire une fonction d'analyse des décimales, mais ça ne me semble pas être une bonne solution.
J'ai d'assez bons résultats avec la fonction sprintf() :
Les deux derniers résultats ne suivent pas ma règle, donc c'est loupé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 12.458 -> 12.46 12.454 -> .12.45 12.45555556 -> 12.46 12.45555554 -> 12.46 12.45555555 -> 12.46
Avez-vous une solution pas trop usine à gaz, ou un conseil pour mieux utiliser sprintf() ?
Merci pour votre aide.
Partager