From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) русский (ru)

The procedure str converts an ordinal or real type value to a string representation thereof. It is a UCSD Pascal extension that was picked up and generalized by Borland Pascal. The FreePascal compiler supports it, too, as described here.


The formal signature of str cannot be written in Pascal, hence a description follows:

Str requires two parameters. The first parameter has to be an ordinal or real type expression. The second parameter specifies the destination. It has to be a variable of the type string (or an array[dimension] of char).

The first parameter may optionally be followed by a colon and an integer expression. This will determine the minimum width of the generated string representation. However, bear in mind if the destination variable is a fixed-length string, no more characters than its maximum capacity can be stored. In this case any surplus characters will be clipped.

If the first parameter is a real expression, the parameter may be followed by another colon and integer after the first colon and integer specifying the minimum width. This number, however, will determine the number of decimal places after the radix mark.


Specifying a second formatting for the real number representation will disable the usual scientific notation.

Enumerated type values will be left-justified, numeric values will be right-justified.

Str cannot produce decimal numbers containing a comma as a radix mark.

Str only produces numbers to the base of ten. FPC’s standard run-time library provides the functions binStr, octStr, and hexStr, which produce string representations of integers according to base of two, eight and sixteen respectively. Real values cannot be easily represented in other bases.

see also

  • the standardized writeStr procedure which does very same operation, but accepts an “infinite” number of arguments
  • val which performs the reverse operation
  • String operations in BorlandPascal Fandom Wiki