Veröffentlicht am :
Makro CREATION_INTERNE

Macro AHGmyput - Formatierung mit dynamischer Rundung

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Makro ermittelt dynamisch die erforderliche Genauigkeit durch Analyse des als Parameter übergebenen Formats (Dezimalteil nach dem Punkt). Es konstruiert dann einen geeigneten Rundungsfaktor (z.B. 0.01 für zwei Dezimalstellen) und gibt das Ergebnis der PUT-Funktion zurück, die auf den gerundeten Wert angewendet wird. Dies vermeidet Anzeigefehler oder Trunkierungen bei der Umwandlung in Text.
Datenanalyse

Type : CREATION_INTERNE


Der Code verbraucht keine externen Daten; es handelt sich um eine Makrofunktionsdefinition, die auf skalare Parameter operiert.

1 Codeblock
DATA STEP
Erklärung :
Definition des Makros. Es extrahiert zuerst die Anzahl der Dezimalstellen aus dem Format (Variable 'digital'), generiert einen String, der die Präzisionseinheit darstellt (Variable 'roundto'), und generiert dann den SAS-Code, der ROUND und PUT kombiniert, um den formatierten Wert zurückzugeben.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.