Skip to content

$ZJustify()

$ZJustify()

Returns a formatted and fixed length byte sequence.

The format for the $ZJUSTIFY() function is:

$ZJ[USTIFY](expr,intexpr1[,intexpr2])
  • The expression specifies the sequence of octets formatted by $ZJUSTIFY().

  • The first integer expression (second argument) specifies the minimum size of the resulting byte sequence.

  • If the first integer expression is larger than the length of the expression, $ZJUSTIFY() right justifies the expression to a byte sequence of the specified length by adding leading spaces. Otherwise, $ZJUSTIFY() returns the expression unmodified unless specified by the second integer argument.

  • The behavior of the optional second expression (third argument) for $ZJUSTIFY() is the same at $JUSTIFY(). For more information, refer to “$Justify()”.

  • When the second argument is specified and the first argument evaluates to a fraction between -1 and 1, $ZJUSTIFY() returns a number with a leading zero (0) before the decimal point (.).

  • $ZJUSTIFY() fills a sequence of octets to create a fixed length byte sequence. However, if the length of the specified expression exceeds the specified byte size, $ZJUSTIFY() does not truncate the result (although it may still round based on the third argument). When required, $ZEXTRACT() performs truncation.

  • $ZJUSTIFY() optionally rounds the portion of the result after the decimal point. In the absence of the third argument, $ZJUSTIFY() does not restrict the evaluation of the expression. In the presence of the third (rounding) argument, $JUSTIFY() evaluates the expression as a numeric value. The rounding algorithm can be understood as follows:

    • If necessary, the rounding algorithm extends the expression to the right with 0s (zeros) to have at least one more digit than specified by the rounding argument.
    • Then, it adds 5 (five) to the digit position after the digit specified by the rounding argument.
    • Finally, it truncates the result to the specified number of digits. The algorithm rounds up when excess digits specify a half or more of the last retained digit and rounds down when they specify less than a half.

Examples of $ZJUSTIFY()

Example:

GTM>write "123456789012345",! write $zjustify("新年好",15),!,$zjustify("新年好",5)
123456789012345
     新年好
新年好
GTM>

This example uses $ZJUSTIFY() to display the sequence of octets represented by “新年好” in fields of 15 space octets and 5 space octets. Because the byte length of “新年好” is 9, it exceeds 5 spaces, the result overflows the specification.