
Parler français : représenter un nombre 100 987,24
avril 18, 2009Selon le pays les nombres sont présentés de manière différente. COMMA et COMMAX sont deux formats utilisés par SAS pour représentés les nombres mais ne s’applique pas au cas français. Vous verrez donc comment créer le format qui vous convient avec l’instruction PICTURE de PROC FORMAT.
1. La différence français/anglais
Les francophones présentent les nombres différemment des anglophones sur deux points.
- Les milliers : Les chiffres des milliers sont séparés par un espace alors que les américains utilisent la virgule
- Les décimales : Les décimales sont séparées par une virgule en français contre un point en anglais
2. La représentation par défaut de SAS
Par défaut, les nombres sous SAS sont simplifiés comme sur une calculatrice.
- Les milliers : le seul séparateur est celui des décimales
- Les décimales : le point fait office de séparateur pour les décimales
Pour une présentation à l’anglais, il faudra appliquer le format COMMA. Il n’existe à ma connaissance qu’une semi version française : le format COMMAX. En effet celui-ci utilise bien la virgule pour séparer les entiers des décimales mais il utilise aussi le point et non le blanc pour séparer les milliers. On préférera donc créer un format avec l’instruction PICTURE.
2. Un exemple
Créer un format : dans le cas présent, les nombres seont affichés jusqu’à 999999,99, en ajoutant un espace entre les milliers et un virgule pour les décimales.
- L’usage du 0 : il n’y aura pas de zéro affiché à l’avant du nombre si celui-ci est plus petit que 100000.
- L’usage du 9 : Les décimales s’afficheront toujours avec deux chiffres après la virgules même si le second chiffre est un zéro.
proc format;
picture commafr other=’000 000,99′;
run;
Appliquer les formats COMMA, COMMAX et format personnel
Dans cette étape data trois variables sont créées chacune avec une observation.
Dans les trois cas, un format avec une extension 9.2 est ajouté de manière permanente. On indique à SAS que le nombre ne dépassera normalement pas 9 caractères dont 2 pour les décimales.
data fr_en;
format eg_english comma9.2
eg_semifrench commax9.2
eg_french commafr9.2;
eg_english=100987.24;
eg_semi_french=100987.24;
eg_french=100987.24;
run;
Voir le résultat
eg_english eg_semifrench eg_french
100,987.24 100.987,24 100 987,24
La variable EG_ENGLISH (exemple, anglais) reçoit, quant à elle, un format COMMA9.2 pour un affichage à l’américaine/l’anglais.
La variable EG_SEMIFRENCH (exemple,respectant partiellement la syntaxe française) reçoit u nformat COMMAX9.2.
La variable EG_FRENCH (exemple, français) reçoit le format créé manuellement COMMAFR9.2 pour un affichage avec un blanc entre chaque groupe de trois chiffres parmi dans la partie entière et deux chiffres pour la partie décimale.
Lectures complémentaires
- Parler français : les heures sous la forme 9h30
- Arrondir ses chiffres avant d’appliquer un format
- Ajouter une date dans un nom de fichier Word, Excel,…
- Afficher 7h30 du matin sous la forme 07:30
SAS Online Doc
- COMMAw.d Format
- COMMAXw.d Format
- PICTURE Statement
Chose bizarre, le format personnel ne s’affiche pas correctement sur ma version.
J’obtiens le résultat suivant pour la variable eg_french :
1 009,87
Personnellement j’utilise le format nlnum12.2 qui marche très bien.
data fr_en;
format eg_nl nlnum12.2;
eg_nl=100987.24;
run;
Attention, il faut utiliser l’option système LOCALE=FRENCH pour que le résultat soit cohérent (source O.Decourt)
Bonjour,
Le problème avec NLNUM est que lorsqu’on importe dans excel, le chiffre est en caractère.
On ne peut donc pas faire de calculs.
Vous avez une solution?
NLNUMI ne marche pas.
A vous!
1 chose besoin de renseiment^pour enregistrer mon aparelle garmin rino 120 et pouvoir utiliser cette aparelle en frencais
2 chose besoin d’une pieces un pied pour mon aparelle auto le pied qui tient laparelle coler a la vite avec une boule dans le garmin 250 de la route
merci michel bessette
Le format NUMX12. fait bien l’affaire aussi
Bonjour,
J’ai essayé le format « commafr » mais il me transformte 9.914,20 en 9,91. Comment faire pour avoir 9 914,20 (en chiffres et non en caractères)?
Merci
[…] Parler français : représenter un nombre 100 987,24 […]