Publicado el :
Informes CREATION_INTERNE

Gestión de decimales con PROC FORMAT PICTURE

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script ilustra cómo crear formatos de imagen personalizados (picture formats) para mostrar números fraccionarios. Cubre la visualización de un número específico de decimales, el comportamiento de truncamiento predeterminado de los formatos picture, y cómo activar el redondeo con la opción (round).
Análisis de datos

Type : CREATION_INTERNE


Los conjuntos de datos 'vallist' y 'x' se generan directamente en el script a través de bucles DO.

1 Bloque de código
PROC FORMAT
Explicación :
Definición de tres formatos personalizados de tipo 'picture' para controlar la visualización de números: entero (showval), un decimal (withdec) y dos decimales (twodec).
¡Copiado!
1title1 '12.2.2 Working with Fractional Values';
2title2 'Showing Decimals';
3 
4PROC FORMAT;
5 picture showval
6 other = '0000';
7 picture withdec
8 other = '00.0';
9 picture twodec
10 other = '09.00';
11RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Creación de un conjunto de datos de prueba 'vallist' que contiene valores de 0 a 3 en incrementos de 0.25. Aplicación de los formatos definidos previamente para observar las diferencias de visualización.
¡Copiado!
1DATA vallist;
2 DO val = 0 to 3 BY .25;
3 val2 = val;
4 val3 = val;
5 val4 = val;
6 OUTPUT;
7 END;
8 FORMAT val2 showval. val3 withdec. val4 twodec.;
9RUN;
3 Bloque de código
PROC PRINT
Explicación :
Visualización del contenido de la tabla 'vallist' para verificar la renderización de los formatos.
¡Copiado!
1PROC PRINT DATA=vallist;
2RUN;
4 Bloque de código
PROC FORMAT
Explicación :
Definición de un formato 'showdec' que muestra dos decimales. Sin la opción 'round', este formato truncará los valores.
¡Copiado!
1PROC FORMAT;
2 picture showdec
3 other = '09.00';
4RUN;
5 Bloque de código
DATA STEP Data
Explicación :
Creación de un conjunto de datos 'x' con valores fraccionarios específicos para probar el comportamiento del formato en los decimales.
¡Copiado!
1DATA x;
2DO x = .007,.017,.123,1.234, 12.345, 1234;
3 y=x;
4 OUTPUT;
5END;
6FORMAT y showdec. x 8.3;
7RUN;
6 Bloque de código
PROC PRINT
Explicación :
Visualización para demostrar el truncamiento de decimales por defecto (ej: 1.234 mostrado como 1.23).
¡Copiado!
1PROC PRINT DATA=x;
2RUN;
7 Bloque de código
PROC FORMAT
Explicación :
Definición del formato 'showdecr' utilizando la opción '(round)' para forzar el redondeo aritmético en lugar del truncamiento.
¡Copiado!
1PROC FORMAT;
2 picture showdecr (round)
3 other = '00009.00';
4RUN;
8 Bloque de código
DATA STEP Data
Explicación :
Recreación del conjunto de datos 'x' y aplicación del nuevo formato con redondeo.
¡Copiado!
1DATA x;
2DO x = .007,.017,.123,1.234, 12.345, 1234;
3 y=x;
4 OUTPUT;
5END;
6FORMAT y showdecr.
7 x 8.3;
8RUN;
9 Bloque de código
PROC PRINT
Explicación :
Visualización final que muestra que los valores ahora están correctamente redondeados (ej: 1.234 mostrado como 1.23, pero .007 mostrado como .01).
¡Copiado!
1PROC PRINT DATA=x;
2RUN;
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.