[résolu] Connaître le nombre de chiffres dans un nombre

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[résolu] Connaître le nombre de chiffres dans un nombre

Messagepar Arathorn » Samedi 03 Octobre 2015, 18:06

Bonsoir,

Y a-t-il une commande qui permette de connaître le nombre de chiffres dans un nombre entier ou non ?
Par exemple
\fonction{1236}=4

Merci
Dernière édition par Arathorn le Samedi 03 Octobre 2015, 19:48, édité 1 fois.
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Connaître le nombre de chiffres ans un nombre

Messagepar un bon petit » Samedi 03 Octobre 2015, 18:41

Pour une macro non développable, xstring peut faire l'affaire :

Code: Tout sélectionner
\documentclass{article}
\usepackage{xstring}
\newcommand*\nchiffres[1]{\StrLen{#1}\relax}
\begin{document}
   \nchiffres{9999} chiffres et \nchiffres{1234567890987654321} chiffres.
\end{document}


S'il faut absolument une macro purement développable, cela demande à peine un peu plus d'efforts. J'attends la demande pour me fatiguer (un peu).
un bon petit
Giga-utilisateur
 
Messages: 681
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Connaître le nombre de chiffres ans un nombre

Messagepar Arathorn » Samedi 03 Octobre 2015, 19:13

Bonsoir,

Merci pour l'aide.

Dans l'aide de xstring, il y a écrit
Code: Tout sélectionner
\StrLen{chaine}[nom]


Si je veux récupérer la valeur (pour l'utiliser en tant que nombre entier dans des calculs ou comme argument dans une commande) dois-je faire ceci ?
Code: Tout sélectionner
\newcommand*\nchiffres[1]{\StrLen{#1}[\Valeur]\relax}


Merci
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant

Re: Connaître le nombre de chiffres ans un nombre

Messagepar un bon petit » Samedi 03 Octobre 2015, 19:16

Arathorn a écrit:dois-je faire ceci ?

Oui, il suffit de tester pour s'en persuader ! L'avantage de cette méthode est que \Valeur est purement développable.
un bon petit
Giga-utilisateur
 
Messages: 681
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Connaître le nombre de chiffres ans un nombre

Messagepar Arathorn » Samedi 03 Octobre 2015, 19:48

OK merci beaucoup.

Je vais essayer d'adapter ceci pour les non entiers avec
Code: Tout sélectionner
\StrBefore{}{.}
et
Code: Tout sélectionner
\Strbehind{}{.}
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant

Re: [résolu] Connaître le nombre de chiffres dans un nombre

Messagepar un bon petit » Samedi 03 Octobre 2015, 19:58

\StrDel me semble plus judicieux :

Code: Tout sélectionner
\newcommand*\nchiffres[1]{%
   \IfDecimal{#1}
      {\def\Valeur{#1}}
      {\edef\Valeur{\number\integerpart\ifnum\decimalpart=0 \else\number\decimalpart\fi}}%
   \StrDel\Valeur.[\Valeur]% supprime les points
   \StrDel\Valeur,[\Valeur]% supprime les virgules
   \StrDel\Valeur-[\Valeur]% supprime l'éventuel signe
   \StrLen\Valeur[\Valeur]% stocke la longueur
   \Valeur% affiche la longueur
}
un bon petit
Giga-utilisateur
 
Messages: 681
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [résolu] Connaître le nombre de chiffres dans un nombre

Messagepar Arathorn » Samedi 03 Octobre 2015, 20:40

Merci encore.

Je garde votre commande. Ma connaissance de latex est limité à LaTex pour l'impatient.
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant

Re: [résolu] Connaître le nombre de chiffres dans un nombre

Messagepar Arathorn » Dimanche 04 Octobre 2015, 09:19

Bonjour,

Désolé de revenir à la charge. Je me suis aperçu que vous êtes le créateur de ce paquet.
J'essaye de décomposer votre commande pas à pas. et j'ai un souci avec \IfDecimal. L'instruction semble fonctionner dans la commande mais pas seule. J'ai toujours vrai comme résultat.

Code: Tout sélectionner
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{xstring}
\newcommand*\nchiffres[1]{%
\IfDecimal{#1}
{\def\Valeur{#1}}
{\edef\Valeur{\number\integerpart\ifnum\decimalpart=0 \else\number\decimalpart\fi}}%
\StrDel\Valeur.[\Valeur]% supprime les points
\StrDel\Valeur,[\Valeur]% supprime les virgules
\StrDel\Valeur-[\Valeur]% supprime l'éventuel signe
\StrLen\Valeur[\Valeur]% stocke la longueur
\Valeur% affiche la longueur
}
\begin{document}
\nchiffres{12.236}

\IfDecimal{12236}{vrai}{Faux}
\end{document}


Une autre question :\number\integerpart : c'est pour transformer le compteur en valeur utilisable ?
Quelle est la différence avec \the\integerpart ou \value{integerpart} ?

J'utilise Texlive avec le dépôt Synaptic, Texmaker 4.4.1 et Ubuntu 14.04 LTS

Merci
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant

Re: [résolu] Connaître le nombre de chiffres dans un nombre

Messagepar un bon petit » Dimanche 04 Octobre 2015, 09:52

Arathorn a écrit:Je me suis aperçu que vous êtes le créateur de ce paquet.

Ah oui. Tiens, moi aussi, je viens de m'en rappeler.

Arathorn a écrit:j'ai un souci avec \IfDecimal. L'instruction semble fonctionner dans la commande mais pas seule. J'ai toujours vrai comme résultat.

Comme l'explique la documentation, la macro \IfDecimal{<nombre>}{A}{B} exécute A si le <nombre> est un décimal et B s'il n'en est pas un. Au passage, 12236 est un décimal.

Arathorn a écrit:Une autre question :\number\integerpart : c'est pour transformer le compteur en valeur utilisable ?

\number attend un <nombre> comme argument (il faut prendre <nombre> au sens de TeX) et transforme ce nombre en valeur entière, affichée en base 10 et en chiffres arabes.
Si le nombre est un compteur, en effet, la valeur de ce compteur est donnée par \number. \the effectue à peu près la même chose, mais c'est une primitive qui est bien plus générale que \number.
\value {intergerpart} ne fonctionnera pas car le compteur \intergerpart n'est pas un compteur défini à la sauce LaTeX.
un bon petit
Giga-utilisateur
 
Messages: 681
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [résolu] Connaître le nombre de chiffres dans un nombre

Messagepar Arathorn » Dimanche 04 Octobre 2015, 20:45

Merci pour ces précisions.
Arathorn
Kilo-utilisateur
 
Messages: 149
Inscription: Mercredi 24 Avril 2013, 18:47
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: DotBot [Crawler], Exabot [Bot] et 7 invités