Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1160 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++ Builder] Quel .h inclure pour la fonction ROUND ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ Builder] Quel .h inclure pour la fonction ROUND ?

n°178867
seb90
Posté le 19-07-2002 à 15:27:22  profilanswer
 

je trouve pa qQuel .h inclure pour la fonction ROUND sous builder 3 , si qnn pouvait m aider ça serait sympa !


Message édité par seb90 le 19-07-2002 à 15:28:07
mood
Publicité
Posté le 19-07-2002 à 15:27:22  profilanswer
 

n°178870
farok
Posté le 19-07-2002 à 15:34:58  profilanswer
 

tu l'as fait toi meme
 
:)  
 
c'est po tres dure non ?

n°178873
seb90
Posté le 19-07-2002 à 15:36:07  profilanswer
 

bah pkoi se casser la tete qd c deja fait ?

n°178874
seb90
Posté le 19-07-2002 à 15:38:19  profilanswer
 

bon ben tout compte fé je crois que g plu que ça a faire

n°178877
farok
Posté le 19-07-2002 à 15:41:17  profilanswer
 

ca fait longtemps que g po programmer en c
 
mais ca doit donner un truc du genre:
 
long Round(float f)
{
 if( (f- trunc(f)+0.5) > 1)
  return trunc(f);
 return trunc(f);
   
}
 
PS: je sais plus si ca existe f, sinon, il faut convertir f en entier tout simplement (il tronque automatiquement je crois...)
PPS: je ne suis pas sur du tout que ca marche, mais c'est l'esprit...

n°178924
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2002 à 16:38:35  profilanswer
 

[:f1key] si la fonction existe, dans l'aide ils disent dans quelle unit c'est
à priori c'est dans math.h (et round en minuscule bien sûr)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°178944
seb90
Posté le 19-07-2002 à 17:07:31  profilanswer
 

justement c pa marqué et c pas dans math.h ...
en plus la fonction est en majuscule ...

n°178947
seb90
Posté le 19-07-2002 à 17:11:33  profilanswer
 

farok a écrit a écrit :

ca fait longtemps que g po programmer en c
 
mais ca doit donner un truc du genre:
 
long Round(float f)
{
 if( (f- trunc(f)+0.5) > 1)
  return trunc(f);
 return trunc(f);
   
}
 
PS: je sais plus si ca existe f, sinon, il faut convertir f en entier tout simplement (il tronque automatiquement je crois...)
PPS: je ne suis pas sur du tout que ca marche, mais c'est l'esprit...
 




 
En fait c pa ça que je veux je veux arrondir au nombre de chiffre desiré apres la virgule comme le fait round ... g essayé de la programmer mais g du mal ...

n°178953
seb90
Posté le 19-07-2002 à 17:40:06  profilanswer
 

ça y est g reussi , en fait il fallait que 2 lignes  ;)  
 

Code :
  1. float Round ( double in , double prec )
  2. {
  3.     int in2=in*pow(10,prec);
  4.     in=in2/pow(10,prec);
  5.     return in;
  6. }


Message édité par seb90 le 19-07-2002 à 17:40:41
n°178963
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2002 à 18:06:22  profilanswer
 

C'est quoi ce langage où y a même pas de fonction d'arrondi :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 19-07-2002 à 18:06:22  profilanswer
 

n°178972
bjone
Insert booze to continue
Posté le 19-07-2002 à 18:45:05  profilanswer
 

seb90 a écrit a écrit :

ça y est g reussi , en fait il fallait que 2 lignes  ;)  
 

Code :
  1. float Round ( double in , double prec )
  2. {
  3.     int in2=in*pow(10,prec);
  4.     in=in2/pow(10,prec);
  5.     return in;
  6. }






 
 
 
oulà t'as pas plus lent ?
 
un ptit sqrt() ou un cos()..... :D
ça manque je trouve....

n°178974
bjone
Insert booze to continue
Posté le 19-07-2002 à 18:48:32  profilanswer
 

tu fais (pour un arrondi au plus près):
 
float i,j;
 
j=quelquechose();
 
i=(float)((int)((float)j+0.5f));
 
c'est très crade mais ça marche.
 

n°178984
seb90
Posté le 19-07-2002 à 20:41:48  profilanswer
 

bjone a écrit a écrit :

 
 
 
 
oulà t'as pas plus lent ?
 
un ptit sqrt() ou un cos()..... :D
ça manque je trouve....




 
Ben je vois pa ou c lent y a pas de boucles en plus ... tu c les ùmultiplications ça se fait rapidement de nos jours  ;)

n°178986
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2002 à 20:44:10  profilanswer
 

pow c'est plus lent que la solution de faire des casts ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°179127
smaragdus
whores, drugs & J.S. Bach
Posté le 20-07-2002 à 12:06:53  profilanswer
 

seb90 a écrit a écrit :

 
 
Ben je vois pa ou c lent y a pas de boucles en plus ... tu c les ùmultiplications ça se fait rapidement de nos jours  ;)  




 
pow c'est un logarithme et un exponentiel : ultra lent.
Il y a 2 fonctions d'arrondi :
* ceil() qui arrondi à l'entier superieur
* floor() qui arrondi à l'entier inferieur
 
Ca sert de lire la doc de temps en temps...  :sarcastic:  :sarcastic:  :sarcastic:  
 
tu fais un truc du style (int)floor(x+0.5)


Message édité par smaragdus le 20-07-2002 à 12:08:18
n°179140
bjone
Insert booze to continue
Posté le 20-07-2002 à 13:49:45  profilanswer
 

par défaut le C/C++ impose un arrondi par défaut....
donc le floor() est théoriquement superflu....
 
(par contre lors des conversions float->int, le fpu est configurable en par défaut/excès/au plus près)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++ Builder] Quel .h inclure pour la fonction ROUND ?

 

Sujets relatifs
fonction javascriptRedimensionner un tableau HTML en fonction d'un layer ??
[ C ] Fonction et char*[opengl] probleme avec la fonction glcolor3d
[PHP] Comment faire quand on a pas la fonction date('W')[JS] faire 'attendre' le return d'une fonction
[ACCESS] fonction date[C++ Builder] Comment n afficher ke 2 chiffres apres la virgule(float)
la fonction mail () en local marche elle ?[PHP] Je vais devenir fou avec cette fonction addslashes
Plus de sujets relatifs à : [C++ Builder] Quel .h inclure pour la fonction ROUND ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR