Publié le :
Macro CREATION_INTERNE

Macro AHGmyput - Formatage avec arrondi dynamique

Ce code est également disponible en : Deutsch English Español
Cette macro détermine dynamiquement la précision requise en analysant le format passé en paramètre (partie décimale après le point). Elle construit ensuite un facteur d'arrondi approprié (ex: 0.01 pour deux décimales) et retourne le résultat de la fonction PUT appliquée à la valeur arrondie. Cela permet d'éviter les erreurs d'affichage ou de troncature lors de la conversion en texte.
Analyse des données

Type : CREATION_INTERNE


Le code ne consomme aucune donnée externe ; il s'agit d'une définition de fonction macro qui opère sur des paramètres scalaires.

1 Bloc de code
DATA STEP
Explication :
Définition de la macro. Elle extrait d'abord le nombre de décimales du format (variable 'digital'), génère une chaîne représentant l'unité de précision (variable 'roundto'), puis génère le code SAS combinant ROUND et PUT pour retourner la valeur formatée.
Copié !
1%macro AHGmyput(var,fmt);
2%local digital roundto;
3%let digital=%scan(&fmt,2,.);
4%let roundto=%substr(0.00000000000000,1,%eval(&digital+1))1;
5put(round(&var,&roundto),&fmt)
6%mend;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.