[C] Nombre de chiffre dans un nombre

Nombre de chiffre dans un nombre [C] - Programmation

Marsh Posté le 02-04-2002 à 14:34:38    

Y a une methode simple pour avoir ca ?
(Je pensais a un strlen(itoa(nombre)) mais ca me parait bourrain :D)

Reply

Marsh Posté le 02-04-2002 à 14:34:38   

Reply

Marsh Posté le 02-04-2002 à 14:37:30    

Un petit logarithme décimal ?


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 02-04-2002 à 14:38:49    

joce a écrit a écrit :

Y a une methode simple pour avoir ca ?
(Je pensais a un strlen(itoa(nombre)) mais ca me parait bourrain :D)  




 
c'est la bonne méthode... je vois pas comment faire autrement... ou alors une fct toute faite existe p-t  :??:


---------------
Une Porsche sinon rien.
Reply

Marsh Posté le 02-04-2002 à 14:39:41    

Je vois un truc : count ca existe pas ? :heink:

Reply

Marsh Posté le 02-04-2002 à 14:44:08    

Eventuellement avec un log en base 10? (Pour un nombre exprimé en base décimale, bien sûr...)

Reply

Marsh Posté le 02-04-2002 à 14:46:49    

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 14:49:32    

Moi non plus, je vois pas mieux qu'un  
int nbreChiffre = 1 + (int)log10(fabs(x));

Reply

Marsh Posté le 02-04-2002 à 14:51:45    

Ha ouais j'ai oublié le Abs :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 15:15:11    

sauf ca chie complet lorsque x vaut 0 :D

Reply

Marsh Posté le 02-04-2002 à 15:21:47    

Ha ouais :D

Citation :


Floating point division by zero.

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 15:21:47   

Reply

Marsh Posté le 02-04-2002 à 15:22:48    

bon finalement :
 
#define LENGTH(num) (num==0)?1:(int)log10(fabs(num))
 
:p

 

[jfdsdjhfuetppo]--Message édité par joce--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 02-04-2002 à 15:31:53    

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)));

Reply

Marsh Posté le 02-04-2002 à 15:39:25    

Dans ton #define t'as déjà oublié le +1


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 15:41:17    

ouaip je l'ai rajoute apres coup, mais c'est pas le probleme

Reply

Marsh Posté le 02-04-2002 à 15:43:29    

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 :D

Reply

Marsh Posté le 02-04-2002 à 15:44:17    

et si j'affiche la valeur de LENGTH a part ca vaut 1 ...

Reply

Marsh Posté le 02-04-2002 à 15:45:23    

essaie

Code :
  1. #define LENGTH(num) ((num==0)?1:(int)log10(fabs(num)))


 
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 ? :D

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 15:45:59    

c'est bon j'ai trouve :
 
(int)(LENGTH(port->index))
 
ct la solution :)

Reply

Marsh Posté le 02-04-2002 à 15:46:41    

Bon bhen j'avais raison, il manque des parenthèses :D
Mais c'est plus propre de les rajouter dans le #define


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 15:48:12    

yep merci :D

Reply

Marsh Posté le 02-04-2002 à 15:53:20    

Ça ne résout pas le problème des smileys entre code et /code par contre :ange:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 16:05:36    

:kaola:

Reply

Marsh Posté le 02-04-2002 à 16:08:59    

Y a aussi:

Citation :


Désolé, vous ne pouvez rajouter plus de 10 smilies


 [:sisicaivrai]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 16:33:49    

je debugge pas le forum au boulot :non:

Reply

Marsh Posté le 02-04-2002 à 16:34:51    

Bhen pourtant parfois il plante la journée aussi :??: :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-04-2002 à 16:50:06    

Question d'un non-matheux  :sweat: :
 
Quelle est l'utilité de la fonction logarythme (en l'occurence logarythme décimal) pour trouver le nombre de chiffres ici ?
 
Merci !  :hello:


---------------
Yoko, our beloved Meuh - R.I.P ( 27/06/2004 )
Reply

Marsh Posté le 02-04-2002 à 16:53:03    

10 puissance x te donne un nombre de x+1 chiffres (1 + x zéros )
 
Le log, c'est la fonction inverse.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 02-04-2002 à 16:59:56    

Mara's dad a écrit a écrit :

10 puissance x te donne un nombre de x+1 chiffres (1 + x zéros )
 
Le log, c'est la fonction inverse.  




 
Merci!  :jap:


---------------
Yoko, our beloved Meuh - R.I.P ( 27/06/2004 )
Reply

Marsh Posté le 02-04-2002 à 17:13:44    

robbystar a écrit a écrit :

Quelle est l'utilité de la fonction logarythme (en l'occurence logarythme décimal) pour trouver le nombre de chiffres ici ?


C'est qu'il a le rithme dans la peau.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 02-04-2002 à 17:21:25    

Jar Jar a écrit a écrit :

C'est qu'il a le rithme dans la peau.  




 
 :sarcastic:


---------------
Yoko, our beloved Meuh - R.I.P ( 27/06/2004 )
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed