Un arrondis en C ?

<blockquote><font class="small">Post&eacute; &agrave; l'origine par grumff:</font><hr /> Quelqu'un pourrait-il me dire comment on arrondis un nbre à virgule en C ?
<hr /></blockquote>
Si tu sais répondre à la question "comment arrondir un nbre à virgule tout court", tu as la réponse.
 
Hi,

tu as:

double floor (double x)
float floorf (float x)
long double floorl (long double x)
These functions round x downwards to the nearest integer, returning that value as a double. Thus, floor (1.5) is 1.0 and floor (-1.5) is -2.0.


ou

double round (double x)
float roundf (float x)
long double roundl (long double x)
These functions are similar to rint, but they round halfway cases away from zero instead of to the nearest even integer.


fonctions de la libc

essaie 'man round' avec le terminal
 
&gt;Si tu sais répondre à la question "comment arrondir un nbre à virgule tout court", tu as la réponse.

ca veut dire que faut que j'm'écrive la fonction moi même ca ? Pourquoi pas mais j'espèrais plus simple... C'est qd même le genre de trucs dont on s'sert souvent...

Pour les fonctions round, manifestement ca arrondi qu'à un nombre entier... La fonction accèpte un seul argument... (contrairement à php4 qu'a la même /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/frown.gif)
L'objectif pour l'instant c'est d'afficher que deux chiffres après la virgule (mais arrondis pas tronqués) sur un convertisseur euro en objective-c...

Autre question au passage, pour faire un random on fait comment ? A la fac ils nous ont filé une méthode dégueulasse avec une fonction d'une bibliothèque propre à borland c++ (le prog de merde par exellence) alors je préfèrerais éviter ca...
 
moi j'aurais fait un espèce de truc comme ça pour un arrondi à 2 chiffres après la virgule:

(int)(monresultat *1000) / 1000

en gros tu prends ton résultat, disons 123.456789 que tu multiplie par 1000 = 123456.789 et la, tu ne gardes plus que la partie entière en transtypant ton résultat (qui était soit un float, soit un double).
puis tu redivise par 1000 pour retrouver 2 chiffres après la virgule.

ça t'aide?
 
Vouaip j'voualis plus simple c'est tout, j'avais essayé ca mais le problème c'est que qd on redivise par 100 (faut pas que ca soit en int déjà sinon j'aurais rien après la virgule et je veux deux chiffre évidemment), et la division par 100 l'ordi fait des erreurs de calcul si bien que ca m'affiche 8 décimals où y'a des cochoneries après la 8e...

pour le random pas d'idées ? /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/frown.gif