Publicado el :
Macro CREATION_INTERNE

Macro AHGmyput - Formato con redondeo dinámico

Este código también está disponible en: Deutsch English Français
Esta macro determina dinámicamente la precisión requerida analizando el formato pasado como parámetro (parte decimal después del punto). Luego construye un factor de redondeo apropiado (ej: 0.01 para dos decimales) y devuelve el resultado de la función PUT aplicada al valor redondeado. Esto ayuda a evitar errores de visualización o truncamiento al convertir a texto.
Análisis de datos

Type : CREATION_INTERNE


El código no consume datos externos; es una definición de función macro que opera sobre parámetros escalares.

1 Bloque de código
DATA STEP
Explicación :
Definición de la macro. Primero extrae el número de decimales del formato (variable 'digital'), genera una cadena que representa la unidad de precisión (variable 'roundto'), y luego genera el código SAS que combina ROUND y PUT para devolver el valor formateado.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.