Arrondir un double

Résolu
ketchupy45 Messages postés 101 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 13 décembre 2007 - 1 mai 2007 à 17:21
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 1 mai 2007 à 20:53
Bonjour, est ce que quelqu'un pourrait m'indiquer comment m'arrondir un double à 2 chiffres derrière la virgule ?

Je ne cherche pas à afficher le chiffre à 2 chiffres derrière la virgule mais à arrondir la variable avec les règles monétaire classique ( <0.005 -> 0.00 ;  = 0.005 -> 0.01; >0.005 -> 0.01 ) et à supprimer tous les chiffres qui ne m'interessent pas ou les mettre à 0, je me debrouillerais apres pour ne pas afficher les zéros.

Merci d'avance

7 réponses

ketchupy45 Messages postés 101 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 13 décembre 2007 1
1 mai 2007 à 19:17
Bon alors finalement j'ai utilisé ceci

  CString str1;
  str1.Format("%.2f", double );
  double = atof(str1);

Merci à tous
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2007 à 17:40
Tu as essayé sprintf() ?

ciao...
BruNews, MVP VC++
0
ketchupy45 Messages postés 101 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 13 décembre 2007 1
1 mai 2007 à 17:45
sprintf est utilisé pour des chaine de caractère non?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2007 à 17:54
eh ben c'est le plus simple pour toi.
Mets dans une chaine au format voulu et repasse le en double.

Sinon c'est ASM, au choix.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cphil51 Messages postés 87 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 24 septembre 2007
1 mai 2007 à 18:00
Je pense que la solution ASM serait préférable (coté optimisation :p).
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2007 à 18:09
ou alors SI tu es certain que tu n'as pas de trop grands nombres:

double d;
...
d = (double) (int) ((d + 0.49) * 100.0);
d /= 100.0;

Fait à la va vite, vérifie si 0.49 te va.

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2007 à 20:53
Cphil51, je viens de mettre à jour:
http://brunews.com/brunews/download/Asm.zip

prog FPU-MMX-SSE, sait-on jamais que qlq'un en veuille.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous