%DEC built-in function converts the value of the first parameter to packed decimal format.
Note that the first parameter can be either a numeric or character expression and can specify a precision and decimal places, or it can be a date, time or timestamp; in which you can specify a format type.
%DEC (Numeric or Character Expression , {Precision, DecimalPlaces})
%DEC (Date, Time or Timestamp , {Format})
Required. Contains the expression in which to convert to packed decimal format.
When the first parameter is a numeric or character expression, the result has precision digits and decimal places decimal positions. The precision and decimal places must be numeric literals, named constants that represent numeric literals, or built-in functions with a numeric value known at compile-time.
Optional. Must be numeric or character expression. They may be omitted if the type of numeric expression is not float. If these parameters are omitted, the precision and decimal places are taken from the attributes of the numeric expression.
If the parameter is a character expression, the following rules apply:
Optional. The optional format parameter specifies the format of the value returned. The converted decimal value will have the number of digits that a value of that format can have, and zero decimal positions. For example, if the first parameter is a date, and the format is *YMD, the decimal value will have six digits.
If this parameter is omitted, the format of the first parameter is used.
BEGSR Dec_Ex
DclFld Name( A )
Type( *ZONED ) Len( 9, 5 )
DclFld Name( B ) Type(
*ZONED ) Len( 9, 5 )
DclFld Name( C ) Type(
*ZONED ) Len( 9, 6 )
DclFld Name( Result1 ) Type( *ZONED ) Len( 9, 5 )
DclFld Name( Result2 ) Type( *ZONED ) Len( 7, 5 )
DclFld Name( Result3 ) Type( *ZONED ) Len( 8, 5
)
A = 1234.567
B = 73.73442
C = 123.456789
Result1 = %DEC(A) + 0.011
MsgBox Result1
Result2 = %DEC(B, 5, 0)
MsgBox Result2
Result3 = %DECH(C, 5, 2)
MsgBox Result3
// The value of "Result1" is now 1234.57800
// The value of "Result2" is now 73.00000
// The value of "Result3" is now 123.46000
ENDSR