Y a une methode simple pour avoir ca ? (Je pensais a un strlen(itoa(nombre)) mais ca me parait bourrain )
Un petit logarithme décimal ?
c'est la bonne méthode... je vois pas comment faire autrement... ou alors une fct toute faite existe p-t
Je vois un truc : count ca existe pas ?
Eventuellement avec un log en base 10? (Pour un nombre exprimé en base décimale, bien sûr...)
1 + Trunc(Log10(Le_nombre))) (ça c'est les fonctions en Pascal mais ça doit pas être très loin du C)
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Moi non plus, je vois pas mieux qu'un int nbreChiffre = 1 + (int)log10(fabs(x));
Ha ouais j'ai oublié le Abs
sauf ca chie complet lorsque x vaut 0
Ha ouais
Floating point division by zero.
bon finalement : #define LENGTH(num) (num==0)?1:(int)log10(fabs(num)) :p
[jfdsdjhfuetppo]--Message édité par joce--[/jfdsdjhfuetppo]
heu j'ai un bleme la bon finalement : Ca ca me renvoie la bonne valeur : printf("%d\n",(strlen(IDSTR(base))+4)); Et ca ca me renvoie 1 printf("%d\n",(strlen(IDSTR(base))+4+LENGTH(port->index)));
Dans ton #define t'as déjà oublié le +1
ouaip je l'ai rajoute apres coup, mais c'est pas le probleme
si tu veux ca me renvoie ca : printf("%d\n",strlen(IDSTR(base))+3); printf("%d\n",strlen(IDSTR(base))+LENGTH(port->index)+3); 11 1 Donc y a un bleme kelkepart
et si j'affiche la valeur de LENGTH a part ca vaut 1 ...
essaie
parenthèses en plus autour de l'expression, on sait jamais edit: et c'est pour quand que tu nous code la désactivation auto des smileys entre code et /code ?
c'est bon j'ai trouve : (int)(LENGTH(port->index)) ct la solution
Bon bhen j'avais raison, il manque des parenthèses Mais c'est plus propre de les rajouter dans le #define
yep merci
Ça ne résout pas le problème des smileys entre code et /code par contre
Y a aussi:
Désolé, vous ne pouvez rajouter plus de 10 smilies
je debugge pas le forum au boulot
Bhen pourtant parfois il plante la journée aussi
Question d'un non-matheux : Quelle est l'utilité de la fonction logarythme (en l'occurence logarythme décimal) pour trouver le nombre de chiffres ici ? Merci !
10 puissance x te donne un nombre de x+1 chiffres (1 + x zéros ) Le log, c'est la fonction inverse.
Merci!
C'est qu'il a le rithme dans la peau.