MD Conversion

The MD code transforms integers by scaling them and inserting symbols, such as a currency sign, thousands separators, and a decimal point. The ML and MR codes are similar to MD but have greater functionality.






n is a number from 0 to 9 that specifies how many digits are to be output after the decimal point. Trailing zeros are inserted as necessary. If n is omitted or 0, the decimal point is not output.

m is a number from 0 to 9 which represents the number of digits that the source value contains to the right of the implied decimal point. m is used as a scaling factor and the source value is descaled (divided) by that power of 10. For example, if m=1, the value is divided by 10; if m=2, the value is divided by 100, and so on. If m is omitted, it is assumed to be equal to n (the decimal precision). If m is greater than n, the source value is rounded up or down to n digits. The m option must be present if the ix option is used and both the Z and $ options are omitted. This to remove ambiguity with the ix option.

Z suppresses leading zeros. Note that fractional values which have no integer will have a zero before the decimal point. If the value is zero, a null will be output.

, specifies insertion of the thousands separator symbol every three digits to the left of the decimal point. The type of separator (comma or period) is specified through the SET-THOU command. (Use the SET-DEC command to specify the decimal separator.)

$ appends an appropriate currency symbol to the number. The currency symbol is specified through the SET-MONEY command.

ix aligns the currency symbol by creating a blank field of "i" number of columns. The value to be output overwrites the blanks. The "x" parameter specifies a filler character that can be any non-numeric character, including a space.

c appends a credit character or encloses the value in angle brackets (<>). Can be any one of the following:

- Appends a minus sign to negative values. Positive or zero values are followed by a blank.
C Appends the characters CR to negative values. Positive or zero values are followed by two blanks.



Input conversion works with a number that has only thousands separators and a decimal point.



MD Code Source Value Returned Value
MD2 1234567 12345.67
MD2, 1234567 12,345.67
MD2,$ 1234567 $12,345.67
MD2,$12* 1234567 $**12,345.67
MD2,$12- -1234567 $12,345.67-
MD42Z,$ 001234567 $12,345.6700
MD42Z,$15 < -001234567 <$ 12,345.6700>