% (format)


Return type:
A formatted string representation of the value of the specified expression.
string-expression % expression


You can use the % operator, also called the format operator, to format the value of an expression as a string. For instance, the following program uses % to output the value of a BCD variable as dollars and cents:

     local bcd price
     set price to 12.95
     output "<$,NNZ.ZZ>" % price

The format operator is preceded by a format string which specifies how the value is to be formatted. It is followed by the expression to be formatted. The expression to be formatted can be a string expression, an integer expression, or a BCD expression.

The format strings used with each type of data are different. See

You can pad data to a certain number of characters as you format it, by using a number and the f format modifier:

  ; pad-format.xom
  ; "8fd" pads the number bar with spaces to a width of 8
  import "ombcd.xmd" unprefixed
      local bcd bar initial {3456}
      output   "8fd" % bar  || "END"
  ; Output: "3456    END"

You can generate the format string dynamically. For instance, the following program dynamically determines the width to use in formatting an integer expression. Notice that the format operator is also used to create the format string dynamically.

  ; dynamic-format.xom
  ; "8fd" pads the number bar with spaces to a width of 8
  import "ombcd.xmd" unprefixed
      local integer foo initial {8}
      local integer bar initial {3456}
      local stream format-string
      set format-string to "d" % foo
                        || "fd"
      output format-string % bar || "END%n"
  ; Output: "3456    END"

In the example above, "8fd" is created dynamically to format the local integer "bar". The "8f" in "8fd" tells OmniMark to pad whatever is being formatted with spaces to a width of eight characters. The "f" is one of a number of format items you can use in specific contexts.

You must use a format string appropriate to the type of expression being formatted, or an error occurs.

You can also format the values of individual variables (as opposed to expressions) using format items.

format is a deprecated synonym for %.